Hinweis zu kombinieren: Ich habe die neueste Version von Postgres bin mit (9,4)Wie DISTINCT und ORDER BY in array_agg von jsonb Werte in PostgresSQL
ich eine Abfrage zu schreiben, ich versuche, die eine einfache 2 Tabellen beitritt, und gruppiert nach dem Primärschlüssel der ersten Tabelle und führt eine array_agg mehrerer Felder in der zweiten Tabelle durch, die ich als Objekt zurückgeben möchte. Das Array muss nach einer Kombination von 2 Feldern in den JSON-Objekten sortiert werden und auch unifiziert sein.
Bisher habe ich mit dem folgenden kommen:
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;
Dies ergibt eine Zeile für jeden Zoo, mit einem Aggregate Array von jsonb Objekten, eines für jedes Tier, eindeutig.
Allerdings kann ich nicht herausfinden, wie dies auch durch die Parameter im auskommentierten Teil des Codes zu sortieren ist.
Wenn ich das distinct, kann ich ORDER BY ursprüngliche Felder, die funktioniert gut, aber dann habe ich Duplikate.
Können Sie einige Beispieldaten und die gewünschte Ausgabe bereitstellen? – Eggplant