tags:

views:

1314

answers:

3

if i have data like this:

Key Name
1 Dan
2 Tom
3 Jon
4 Tom
5 Sam
6 Dan

What is the sql query to bring back the records where the Name is repeated 2 or more times.

So the result i would want is

 Tom
Dan
+26  A: 

Couldn't be simpler...

Select
Name,
Count(Name) As Count
From
Table
Group By
Name
Having
Count(Name) > 1
Order By
Count(Name) Desc

This could also be extended to delete duplicates:

Delete
From
Table
Where
Key In (
Select
Max(Key)
From
Table
Group By
Name
Having
Count(Name) > 1)
GateKiller
+3  A: 

This could also be accomplished by joining the table with itself,

SELECT DISTINCT t1.name
FROM    tbl t1
        INNER JOIN tbl t2
        ON      t1.name = t2.name
WHERE   t1.key         != t2.key;
Dag Haavi Finstad
+3  A: 
select name from table group by name having count(name) > 1
Ryan