En donnant un exemple de table 'Users', qui a une colonne int nommée 'UserID' (et un nombre arbitraire d'autres colonnes), quelle est la meilleure façon de sélectionner toutes les lignes apparaît plus d'une fois?Tsql, retournant des lignes avec des valeurs de colonnes identiques
Jusqu'à présent, je suis venu avec
select * from Users where UserID in
(select UserID from Users group by UserID having COUNT(UserID) > 1)
Cela semble tout à fait un moyen innefficient de le faire bien, est-il une meilleure façon?
Dans quel sens inefficace? Avez-vous des millions d'utilisateurs ou quoi? Je pense que votre requête est très bien; Si vous avez des milions de lignes, alors bien sûr, UserID doit être indexé pour ce type de requête. – Arvo
Je pense intuitivement qu'il doit y avoir un moyen de le faire sans utiliser de sous-requête. Bien sûr, je pourrais me tromper totalement. – John
Plus précisément: pourquoi l'ID utilisateur apparaîtrait-il plus d'une fois dans une table Utilisateurs? –