sql >> Database teknologi >  >> RDS >> PostgreSQL

Forespørgsel efter kombinationer af JSON returnerer ulige resultater

En venlig person fra Postgresqls IRC-kanal hjalp med at finde svaret og lave den korrekte forespørgsel. Æren er faktisk hans, ikke min.

Han hjalp med at indse, at albummene og srcs'erne skulle føjes til arrays til sammenligning. For eksempel:

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;

Jeg ved ikke om det er den bedste måde at gøre det på, men det virker. Forslag modtages gerne.



  1. Bedre samtidighed i Oracle end SQL Server?

  2. Hvordan kan jeg vise, om et flyselskab afgår fra hele lufthavnen i min DB i Postgresql?

  3. Jeg forsøger at starte mysql-client i Docker, men jeg får adgang nægtet på grund af brugerfejl

  4. Gem databaserække-id i session til senere brug