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

JSONの組み合わせをクエリすると、奇妙な結果が返されます

    PostgresqlのIRCチャネルの親切な人が、答えを見つけて正しいクエリを作成するのを手伝ってくれました。クレジットは実際には彼のものであり、私のものではありません。

    彼は、アルバムとsrcを比較のために配列に追加する必要があることを理解するのに役立ちました。例:

    SELECT array_agg(rep_id), count(*) AS ct
    FROM (SELECT rep_id, 
                 data->>'background' as background, 
                 array_agg(o->>'album' order by o->>'album') as albums, 
                 array_agg(o->>'src' order by o->>'album') as srcs  
               FROM reports r, 
               json_array_elements(r.data->'objects') o 
               GROUP BY rep_id) s 
    GROUP BY background, albums, srcs
    ORDER BY count(*) DESC
    LIMIT 5;
    

    これが最善の方法かどうかはわかりませんが、機能します。提案は大歓迎です。



    1. PostgreSQLがSTABLE/IMMUTABLE関数を複数回呼び出すのはなぜですか?

    2. ひねりを加えた時制データベースの設計(ライブ行とドラフト行)

    3. 個別の値を返すOracleのLISTAGG

    4. 集計関数でSELECT...FOR UPDATEを使用できないのはなぜですか?