Kürzer, schneller und eleganter mit LATERAL
beitreten:
SELECT DISTINCT ON (t.team->>'Name') t.team
FROM matches m, json_array_elements(m.match->'Teams') t(team);
ORDER BY t.team->>'Name', m.id DESC; -- to get the "last"
Wenn Sie nur unterschiedliche Teams wünschen, verwenden Sie die Option ORDER BY
kann gehen. Verwandte:
- Abfrage nach Element des Arrays in JSON-Spalte
- Suche nach Array-Elementen innerhalb des JSON-Typs
JSON und Gleichheit
Es gibt keinen Gleichheitsoperator für json
Datentyp in Postgres, aber es gibt einen für jsonb
(Postgres 9.4+):
- Wie frage ich eine json-Spalte nach leeren Objekten ab?