Если у меня есть такие данные:
+---+----+
|Key|Name|
+---+----+
|1 |Dan |
+---+----+
|2 |Tom |
+---+----+
|3 |Jon |
+---+----+
|4 |Tom |
+---+----+
|5 |Sam |
+---+----+
|6 |Dan |
+---+----+
Что такое SQL-запрос для возврата записей, где Name
повторяется 2 или более раз?
Таким образом, результат, который я хотел бы,
+---+
|Tom|
+---+
|Dan|
+---+
24 sql
Dan
6.08.2008 09:00:58
3 ОТВЕТА
РЕШЕНИЕ
Не может быть проще ...
Select Name, Count(Name) As Count
From Table
Group By Name
Having Count(Name) > 1
Order By Count(Name) Desc
Это также может быть расширено для удаления дубликатов:
Delete From Table
Where Key In (
Select Max(Key)
From Table
Group By Name
Having Count(Name) > 1
)
38
GateKiller
7.10.2019 07:39:44
Для удаления вы должны оставить только Min (ключ) и удалить другие записи. Запрос должен быть изменен как "... где ключ НЕ
aartist
14.04.2012 06:23:49
Это также может быть достигнуто путем объединения таблицы с самим собой,
SELECT DISTINCT t1.name
FROM tbl t1
INNER JOIN tbl t2
ON t1.name = t2.name
WHERE t1.key != t2.key;
3
Dag Haavi Finstad
10.08.2008 01:31:05
select name from table group by name having count(name) > 1
4
Ryan
17.08.2008 04:36:53