sql >> Databáze >  >> RDS >> PostgreSQL

Dotazování kombinací JSON vrátí liché výsledky

Laskavý člověk z IRC kanálu Postgresql pomohl najít odpověď a vytvořit správný dotaz. Kredit je vlastně jeho, ne můj.

Pomohl si uvědomit, že alba a srcs by měly být přidány do polí pro srovnání. Například:

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;

Nevím, jestli je to nejlepší způsob, jak to udělat, ale funguje to. Návrhy jsou vítány.



  1. Nelze vytvořit rozšíření plv8 postgresql

  2. Kontingenční tabulka MySQL

  3. Řešení pro:U tabulky, která má seskupený index columnstore, nejsou podporovány kurzory

  4. SQL:AKTUALIZACE z komplexního výběru