PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Запитването на комбинации от JSON връща странни резултати

Любезен човек от IRC канала на Postgresql помогна да се намери отговорът и да се създаде правилната заявка. Заслугата всъщност е негова, не моя.

Той помогна да се разбере, че албумите и src трябва да се добавят към масиви за сравнение. Например:

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;

Не знам дали това е най-добрият начин да го направя, но работи. Предложенията са добре дошли.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как естествено да се съединят двете заявки с клауза с?

  2. Escape функция за регулярен израз или модели LIKE

  3. Добавяне на вложен масив в Postgres jsonb

  4. Как да включите нулеви стойности в заявка `tablefunc` в postgresql?

  5. PostgreSQL:Времево клеймо в бъдещето