Uwaga: Używam najnowszej wersji PostgreSQL (9.4)Jak łączyć odrębne i ORDER BY w array_agg wartości jsonb w PostgresSQL
próbuję napisać zapytanie, które wykonuje proste przyłączenia z 2 tabel, i grupuje kluczem podstawowym pierwszej tabeli, i wykonuje tablicę_agg wielu pól w drugiej tabeli, które chcę zwrócić jako obiekt. Tablica musi być posortowana według kombinacji 2 pól w obiektach json, a także unikatowa.
Do tej pory mają pochodzić z następujących czynności:
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;
Wynika to w jednym wierszu dla każdego zoo, o łącznej tablicy jsonb obiektów, po jednej dla każdego zwierzęcia, jednoznacznie.
Nie mogę jednak wymyślić sposobu sortowania tego również według parametrów w skomentowanej części kodu.
Jeśli wybiorę wyraźne, mogę ZAMÓWIĆ według oryginalnych pól, co działa świetnie, ale potem mam duplikaty.
Czy możesz podać przykładowe dane i pożądane wyniki? – Eggplant