0
にネストされたJSONから値を取得します。ここで、「W私は次のようにコラム「転写」と「オーディオ」と呼ばれるテーブルを持っているPostgresの
{"transcript": [
{"p": 0, "s": 0, "e": 320, "c": 0.545, "w": "This"},
{"p": 1, "s": 320, "e": 620, "c": 0.825, "w": "call"},
{"p": 2, "s": 620, "e": 780, "c": 0.909, "w": "is"},
{"p": 3, "s": 780, "e": 1010, "c": 0.853, "w": "being"}
...
]}
私は「P」の値を取得したいと思います特定のキーワードと一致します。
次のクエリを実行すると、「w」に「google」または「all」という単語が含まれているAudioのエントリ全体が表示されます。
select json_array_elements(transcript->'transcript')->>'s'
from Audio,
json_array_elements(transcript->'transcript') as temp
where temp->>'w' ilike any(array['all','google'])
条件が満たされている場合、どのように「p」の値だけを得ることができますか?
編集: "p"とその対応するオーディオIDの値を同時に取得するにはどうすればよいですか?
答えてくれてありがとう!私はpとその対応するIDの値の両方を得ることができますが、クロス結合条件を避けてください。私は両方の行を選択しようとしました - "p"とIDが、私は結果が倍をすべて数えると思います。 – YAL
この例にいくつかのコメントを追加しました。私は 'id 'がどこから来たのかについて仮定をしなければならなかったが、うまくいけばその例は十分一般的である。 – teppic