sql >> データベース >  >> RDS >> PostgreSQL

クエリ内で照合するためにPostgreSQLのjsonb配列値を反復処理する方法

    私は本質的に「unnest()」のようなjsonb_array_elements()を実行することでこれを解決しました ネストされたjsonb配列上。

    サブクエリでこれを実行し、元のクエリのバリエーションを使用してそれらの結果をスキャンすることで、目的の結果を得ることができました。

    これが私が思いついたものです。

    with dupe as (
    select
    json_document->>'Name' as name,
    identifiers->'RecordID' as record_id
    from (
      select *,  
      jsonb_array_elements(json_document->'Identifiers') as identifiers
      from staging
    ) sub
    group by record_id, json_document
    order by name
    ) 
    
    select * from dupe da where (select count(*) from dupe db where 
    db.record_id = da.record_id) > 1;
    



    1. データベースのユニットテストフレームワーク

    2. ローカルホスト上のPHPファイルからMySqlデータベースにアクセスする

    3. Oracleデータベースでロックされたユーザーのリストを取得するにはどうすればよいですか?

    4. このコード内のフィールドを別の名前で結合するにはどうすればよいですか?