sql server trouver des doublons sur une colonne, mais à l'aide de select où
Je suis en train de sélectionner des lignes d'une table qui ont des doublons dans une colonne, mais aussi restreindre les lignes en fonction d'une autre colonne. Il ne semble pas fonctionner correctement.
select Id,Terms from QueryData
where Track = 'Y' and Active = 'Y'
group by Id,Terms
having count(Terms) > 1
Si je retire la où il fonctionne très bien mais j'ai besoin de la restreindre à ces lignes seulement.
ID Terms Track Active
100 paper Y Y
200 paper Y Y
100 juice Y Y
400 orange N N
1000 apple Y N
idéalement, la requête doit retourner les 2 premières lignes.
- Je pense que quelques exemples de données permettrait d'illustrer votre question... j'ai remarqué que vous êtes regroupement par
Id
, est cette colonne n'est pas unique dans ce tableau? - il n'y a pas d'index sur cette table, et fournira de l'exemple ci-dessus
Vous devez vous connecter pour publier un commentaire.
Démo sur SQLFiddle
Ne pas obtenir exactement ce que vous faites. Vous utilisez
count(Terms)
danshaving
cependantTerms
est dans votreselect
clause. Cela signifie que pour chaque enregistrementscount(Terms)
sera de 1. Vous avez probablement à exclureTerms
deselect
liste.Honnêtement, j'ai reproduit votre table et de la requête et ça ne fonctionne pas.
Probablement cette est ce que vous cherchez(?):
Ce sera le retour de tous les dupliqué conditions répondant aux critères:
http://sqlfiddle.com/#!3/18a57/2
Si vous voulez tous les détails de ces conditions, vous pouvez vous joindre à ce résultat.
http://sqlfiddle.com/#!3/18a57/5