2012-09-10 4 views
0

J'ai une table (user_admin_password). J'utilise cette requête pour obtenir les enregistrements.Afficher les enregistrements en double dans mysql

SELECT user_key,admin_status,count(*) 
FROM user_admin_status 
GROUP BY 
    user_key,admin_status having count(*) > 1 
ORDER BY user_key,admin_status; 

Le résultat est:

+----------+--------------+----------+ 
| user_key | admin_status | count(*) | 
+----------+--------------+----------+ 
|  1 | NON-DBA  |  5 | 
|  3 | DBA   |  328 | 
|  5 | NON-DBA  |  8 | 
|  6 | NON-DBA  |  25 | 
|  7 | NON-DBA  |  4 | 
|  9 | DBA   |  232 | 
|  10 | NON-DBA  |  4 | 
|  11 | DBA   |  4 | 
|  13 | NON-DBA  |  8 | 
|  15 | NON-DBA  |  2 | 
|  16 | DBA   |  326 | 
|  16 | NON-DBA  |  2 | 
|  17 | NON-DBA  |  10 | 
|  18 | NON-DBA  |  5 | 
|  19 | NON-DBA  |  12 | 
|  20 | NON-DBA  |  2 | 
|  21 | NON-DBA  |  2 | 
... 
... 

Maintenant, je veux que tous les user_keys avec enregistrement en double ... par exemple 16 ... des suggestions ???

Répondre

3

envelopper juste dans une autre sélection:

select user_key, count(*) 
from 
(
    select user_key,admin_status,count(*) 
    from user_admin_status 
    group by user_key,admin_status 
    having count(*) > 1 
) x 
group by user_key 
having count(*) > 1 
+0

hey merci ... got it – ashah142

Questions connexes