PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Truy vấn kết hợp JSON trả về kết quả kỳ lạ

Một người tốt bụng từ kênh IRC của Postgresql đã giúp tìm ra câu trả lời và đưa ra câu hỏi chính xác. Tín dụng thực sự là của anh ấy, không phải của tôi.

Anh ấy đã giúp nhận ra rằng các album và srcs nên được thêm vào các mảng để so sánh. Ví dụ:

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;

Tôi không biết liệu đây có phải là cách tốt nhất để làm điều đó hay không nhưng nó có hiệu quả. Đề xuất được hoan nghênh.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để xóa một trong hai dòng dữ liệu trùng lặp của tôi trong Postgres?

  2. Ánh xạ cột PostgreSQL JSON thành thuộc tính thực thể Hibernate

  3. Chọn cột chữ thường với nhóm theo hoặc chọn dưới (cột) trong Rails 4

  4. Docker - Ứng dụng Rails không thể kết nối với vùng chứa Postgres được liên kết (dường như không chạy)

  5. Truy vấn máy chủ chéo PostgreSQL?