2013-07-14 5 views
3

Voici la table dans SQL Server .. et ci-dessous est ce que je veux faire. Toute aide serait appréciée.Comment sélectionner uniquement les enregistrements en double?

TABLE:

Area (column 1) 
----- 
Oregon 
California 
California 
California 
Oregon 
Washington 
Idaho 
Washington 

Je veux toutes les villes qui sont doubles à retourner, mais pas ceux distincts. Juste les doublons. Y a-t-il une instruction select qui me permet de retourner seulement des doublons?

Répondre

10
Select State FROM Area 
GROUP BY State 
Having COUNT(*) > 1 

Essayez cette

Mise à jour de la requête avec vos propres colonnes et les noms de table

+1

Merci @TGH il est fonctionne – Nisar

0

Bien que l'approche GROUP BY .. HAVING est probablement mieux ici, ce cas - « plus d'un » - peut aussi répondre avec en supposant qu'il existe une colonne (ou un ensemble de colonnes) formant une clé. L'exigence d'une clé est qu'il doit uniquement identifier un enregistrement.

SELECT DISTINCT a1.State 
FROM AREA a1 
JOIN AREA a2 
    ON a1.AreaId != a2.AreaId -- assume there is a Key to join on 
    AND a1.State = a2.State -- and such that different Areas with same State 
+0

ce code retour sans valeur .. – Nisar

+0

@NISAR alors une clé appropriée n'est pas utilisé (Etat ne peut pas être utilisé comme une clé, car il ne * unique * identifier un enregistrement). – user2246674

+0

Merci .. mais votre code prend 93% coût de la requête par rapport à ce code prend 7% ci-dessous .... "Sélectionnez Etat FROM Zone GROUPE par État ayant COUNT (*)> 1" – Nisar

Questions connexes