sql >> Databasteknik >  >> RDS >> PostgreSQL

Att fråga efter kombinationer av JSON ger udda resultat

En snäll person från Postgresqls IRC-kanal hjälpte till att hitta svaret och skapa rätt fråga. Krediten är faktiskt hans, inte min.

Han hjälpte till att inse att albumen och srcs borde läggas till arrayer för jämförelse. Till exempel:

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;

Jag vet inte om detta är det bästa sättet att göra det men det fungerar. Förslag är välkomna.



  1. psql returkod om noll rader hittas

  2. Migrera från traditionell replikering till GTID

  3. Det går inte att hämta data från databasen till skripttaggen när grafen används

  4. SQL kapslad ordning efter?