sql >> Database >  >> RDS >> PostgreSQL

Het opvragen van combinaties van JSON levert vreemde resultaten op

Een aardig persoon van het IRC-kanaal van Postgresql hielp bij het vinden van het antwoord en het opstellen van de juiste vraag. De eer is eigenlijk van hem, niet van mij.

Hij hielp beseffen dat de albums en src's ter vergelijking aan arrays moeten worden toegevoegd. Bijvoorbeeld:

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;

Ik weet niet of dit de beste manier is om het te doen, maar het werkt. Suggesties zijn welkom.



  1. Rails Migrations:geprobeerd om het type kolom te veranderen van string naar integer

  2. Voorbeeld van PHP/MySQL-injectie

  3. Geen bewerkingen toegestaan ​​nadat verbinding is gesloten MYSQL

  4. Mysql-volgorde op specifieke ID-waarden