PostgreSQL find value from JSONB column
JSONB :
PostgreSQL 中的一種特殊欄位,儲存的是 JSON 型態但是 Compiled 過的 binary 資料。
特性是,可以讓 PostgreSQL 經由 mata data 加速查詢 的速度。
但反過來說,在 儲存時較花時間 ,因為要先轉 mata data 所以相對上會比較耗時。
因此主要用在,少編輯但卻需要經常查詢的請境下。
查詢 JSONB 資料內容方式範例
Syntax:
select column_a,
JSONB_COLUMN ->> 'ATTRIBUTE' as alias
from TABLE_WITH_JSONB_COLUMN
where clause;
Example: JSON 結構僅單一層
select student_id,
grade_no, class_no,
PERSONAL_DATA->>'DOB' as BIRTHDAY
from student where grade_no = 1 and class_no in( 'A','B' );
Example: 查出1年A班學生,歷次數學成績
select student_id,
string_agg(exam_score->>'MATH', ',') as Math_Scores
from student where grade_no = 1 and class_no in('A')
group by student_id;