SQL dotazu, počet a skupina by

hlasů
18

Mám-li údaje, jako je tento:

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

Co je to SQL dotaz přivézt záznamy, kde Namese opakuje 2 nebo vícekrát?

Takže výsledek bych chtěl, je

 +---+
 |Tom|
 +---+
 |Dan|
 +---+
Položena 06/08/2008 v 10:00
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
35

Nemůže být jednodušší ...

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

To by mohlo být také rozšířena na odstranit duplicity:

Delete
From
Table
Where
Key In (
    Select
    Max(Key)
    From
    Table
    Group By
    Name
    Having
Count(Name) > 1)
Odpovězeno 06/08/2008 v 10:02
zdroj uživatelem

hlasů
4
select name from table group by name having count(name) > 1
Odpovězeno 17/08/2008 v 05:36
zdroj uživatelem

hlasů
3

To by také mohlo být dosaženo spojením tabulku s sebou,

SELECT DISTINCT t1.name
FROM    tbl t1
        INNER JOIN tbl t2
        ON      t1.name = t2.name
WHERE   t1.key         != t2.key;
Odpovězeno 10/08/2008 v 02:31
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more