PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

GROUP BY in Postgres - keine Gleichheit für JSON-Datentyp?

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?