sql >> Databasteknik >  >> RDS >> PostgreSQL

GROUP BY i Postgres - ingen likhet för JSON-datatyp?

Kortare, snabbare och mer elegant med en LATERAL gå med:

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"

Om du bara vill ha distinkta lag, ORDER BY kan gå. Relaterat:

  • Fråga efter element av array i JSON-kolumnen
  • Fråga efter arrayelement i JSON-typ

JSON och jämlikhet

Det finns ingen likhetsoperator för json datatyp i Postgres, men det finns en för jsonb (Postgres 9.4+):

  • Hur frågar jag en json-kolumn för tomma objekt?



  1. Olaglig instruktion:4 när du kör Django

  2. Frågor och svar från vår Parameter Sniffing-webinarserie

  3. Android Sqlite vid uppgradering av raderingstabell från databasen

  4. Ändra storlek på tabell-/kolumn-/indexnamn i oracle 11g eller 12c