Korter, sneller en eleganter met een LATERAL
doe mee:
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"
Als je gewoon aparte teams wilt, gebruik dan de ORDER BY
kan gaan. Gerelateerd:
- Query voor element van array in JSON-kolom
- Query voor array-elementen binnen het JSON-type
JSON en gelijkheid
Er is geen gelijkheidsoperator voor de json
gegevenstype in Postgres, maar er is er een voor jsonb
(Postgres 9.4+):
- Hoe een json-kolom opvragen voor lege objecten?