2011-12-19 6 views
0

J'ai une table nommée 'entité' dans DB qui consisteMa requête SQL pour récupérer uniquement les enregistrements en double

id

, entityname, temps créé, temps modifié.

Je veux récupérer seulement les enregistrements qui ont des entrées en double comme s'il y a deux entités avec le nom Arthur alors je veux seulement que deux enregistrements. Je n'ai pas pu construire la requête en comparant le nom de l'entité avec le nom de l'entité qui me renvoie tous les enregistrements.

Répondre

1
SELECT * 
FROM entity 
WHERE entityname IN 
(SELECT entityname 
FROM entity 
GROUP BY entityname 
HAVING COUNT(*) > 1) 
+0

@Sangram: ma requête affiche tous les enregistrements en double .. (pas seulement le nom et compte) – naresh

+0

mon navigateur de requête sql se bloque, le m inute j'exécute cette requête ... –

+0

combien d'enregistrements y a-t-il dans votre table d'entité? As-tu mis ; à la fin? – naresh

0

Cela sélectionnera tous entityName et RecordCount

Select entityName, count(*) as RecordCount 
from entity 
group by entityName 

où entityName RecordCount = 1

unique, puis de sélectionner tous les enregistrements avec doublons:

Select entityName, count(*) as RecordCount 
from entity 
group by entityName 
having count(*) > 1 
+0

merci pour la requête les gars, mais son affichage de l'entityName et son nombre, pouvons-nous construire la requête de telle sorte qu'il affiche même les enregistrements en double. Comme il y a 4 entités par le nom Arthur mais leur id est différent, ainsi la requête peut retourner toutes les quatre entités. –

Questions connexes