「データ」という列にjsonbとして保存されたデータがあります。
{'people': [{"name": "Bob", "Occupation": "janitor"}, {"name": "Susan", "Occupation", "CEO"}]}
これを次の方法でクエリできます。
SELECT mydata.pk FROM mydata, jsonb_array_elements(mydata.data->'people') AS a WHERE (a->>'name') = 'bob'
jsonb_array_elements(...) を "a" に置き換えられないのはなぜですか?:
SELECT mydata.pk FROM mydata WHERE (jsonb_array_elements(mydata.data->'people')->>'name') = 'bob'
代わりに、次のようになります。
ERROR: argument of WHERE must not return a set