SQL Configuration d'un indicateur si d'autres lignes ont une propriété commune


Exemple

Disons que j'ai ces données:

Articles de table

id prénom marque
1 Exemple unique_tag
2 foo simple
42 bar simple
3 baz Bonjour
51 quux monde

Je voudrais obtenir toutes ces lignes et savoir si un tag est utilisé par d'autres lignes

SELECT id, name, tag, COUNT(*) OVER (PARTITION BY tag) > 1 AS flag FROM items

Le résultat sera:

id prénom marque drapeau
1 Exemple unique_tag faux
2 foo simple vrai
42 bar simple vrai
3 baz Bonjour faux
51 quux monde faux

Si votre base de données n'a pas OVER et PARTITION, vous pouvez l'utiliser pour produire le même résultat:

SELECT id, name, tag, (SELECT COUNT(tag) FROM items B WHERE tag = A.tag) > 1 AS flag FROM items A