Lưu ý: Tôi đang sử dụng phiên bản mới nhất của Postgres (9,4)Làm thế nào để kết hợp DISTINCT và ORDER BY trong array_agg các giá trị jsonb trong Postgressql
Tôi cố gắng để viết một truy vấn mà không tham gia vào một đơn giản của 2 bảng, và các nhóm bằng khóa chính của bảng đầu tiên, và thực hiện một mảng_agg của một số trường trong bảng thứ hai mà tôi muốn trả về dưới dạng một đối tượng. Mảng này cần phải được sắp xếp theo sự kết hợp của 2 trường trong các đối tượng json, và cũng không được thống nhất.
Cho đến nay, tôi đã đưa ra như sau:
SELECT
zoo.id,
ARRAY_AGG(
DISTINCT ROW_TO_JSON((
SELECT x
FROM (
SELECT animals.type, animals.name
) x
))::JSONB
-- ORDER BY animals.type, animals.name
)
FROM zoo
JOIN animals ON animals.zooId = zoo.id
GROUP BY zoo.id;
Điều này dẫn đến một hàng cho mỗi vườn thú, với một mảng tổng hợp của các đối tượng jsonb, một cho mỗi động vật, độc đáo.
Tuy nhiên, tôi dường như không thể tìm ra cách cũng sắp xếp điều này theo các tham số trong phần nhận xét của mã.
Nếu tôi đưa ra sự khác biệt, tôi có thể ORDER BY trường gốc, hoạt động tốt, nhưng sau đó tôi có bản sao.
Bạn có thể cung cấp một số dữ liệu mẫu và đầu ra mong muốn không? – Eggplant