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?