PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

GROUP BY dans Postgres - pas d'égalité pour le type de données JSON ?

Plus court, plus rapide et plus élégant avec un LATERAL rejoindre :

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"

Si vous voulez juste des équipes distinctes, le ORDER BY peut aller. Connexe :

  • Requête pour l'élément du tableau dans la colonne JSON
  • Requête pour les éléments de tableau dans le type JSON

JSON et égalité

Il n'y a pas d'opérateur d'égalité pour le json type de données dans Postgres, mais il y en a un pour jsonb (Postgres 9.4+) :

  • Comment interroger une colonne JSON pour les objets vides ?