PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

GROUP BY in Postgres - nessuna uguaglianza per il tipo di dati JSON?

Più corto, più veloce e più elegante con un LATERAL unisciti:

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"

Se vuoi solo squadre distinte, ORDER BY può andare. Correlati:

  • Query per l'elemento dell'array nella colonna JSON
  • Query per gli elementi dell'array all'interno del tipo JSON

JSON e uguaglianza

Non esiste un operatore di uguaglianza per json tipo di dati in Postgres, ma ce n'è uno per jsonb (Postgres 9.4+):

  • Come interrogare una colonna json per oggetti vuoti?