PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Das Abfragen von Kombinationen von JSON gibt ungerade Ergebnisse zurück

Eine freundliche Person aus dem IRC-Kanal von Postgresql hat geholfen, die Antwort zu finden und die richtige Abfrage zu erstellen. Der Kredit ist eigentlich sein, nicht meins.

Er half bei der Erkenntnis, dass die Alben und srcs zum Vergleich zu Arrays hinzugefügt werden sollten. Zum Beispiel:

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;

Ich weiß nicht, ob dies der beste Weg ist, es zu tun, aber es funktioniert. Vorschläge sind willkommen.