Question

I have a table(user_admin_password). I am using this query to get the records.

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;

The result is:

+----------+--------------+----------+
| 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 |
...
...

Now, I want all the user_keys with duplicate record...for example 16...any suggestions???

Was it helpful?

Solution

Just wrap it in another select:

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 
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top