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

ネストされたオブジェクトに対するPostgresjsonbクエリ

    json_agg() を使用します および jsonb_array_elements() 機能:

    select json_agg(cell)
    from (
        select jsonb_array_elements(elem->'cell') cell
        from (
            select jsonb_array_elements(data->'cust') elem
            from product_cust
            ) subsub
        ) sub
    

    2つの内部サブクエリをマージできます:

    select json_agg(cell)
    from (
        select jsonb_array_elements(jsonb_array_elements(data->'cust')->'cell') cell
        from product_cust
        ) sub
    

    製品IDで結果をグループ化:

    select productid, json_agg(cell)
    from (
        select productid, jsonb_array_elements(jsonb_array_elements(data->'cust')->'cell') cell
        from product_cust
        ) sub
    group by 1
    order by 1
    



    1. php読み取りmysqlビットフィールドが奇妙な文字を返す

    2. MSSQL2008R2の集計関数なしのピボット

    3. PHPデータベース接続クラス

    4. パフォーマンスのためのPostgreSQLでのテーブルインデックス