chandra sekhar Ответов: 3

Как найти все повторяющиеся записи в таблице?


Я хочу найти повторяющиеся значения в моей таблице по нескольким столбцам.

Но выход выглядит так

Название города название города
Чэнду Чэнду Америки Америки
Чэнду Чэнду Америки Америки
Тома Тома Великобритания Великобритания
Тома Тома Великобритания Великобритания

Как я могу показать только две колонки? Есть ли простой способ найти все дубликаты записей?

Что я уже пробовал:

select * from EMP a join(select Name,city from EMP group by Name,city having count (*)>1)b
on a.Name=b.Name
and a.city=b.city

3 Ответов

Рейтинг:
22

Maciej Los

Вам нужно только это:

SELECT Name, city
FROM EMP
GROUP BY Name, city
HAVING COUNT(*)>1


Другой SELECT заявление излишне!


Рейтинг:
1

User 7429338

Чтобы отобразить только два столбца, уменьшите выбранные столбцы:

select a.Name, a.city from EMP a join(select Name,city from EMP group by Name,city having count (*)>1)b
on a.Name=b.Name
and a.city=b.city


Чтобы показать только отчетливые результаты:
select distinct a.Name, a.city from EMP a join(select Name,city from EMP group by Name,city having count (*)>1)b
on a.Name=b.Name
and a.city=b.city


Рейтинг:
0

kirthiga S

Чтобы найти дубликаты записей

select Name,city,count(*) Cnt from TableName group by Name,city having count(*)>1

Удаление дубликатов записей из таблицы
;with del as
(select row_number() over(partition by Name,city order by Name,city) as rownumber,* from TableName)
delete from del where rownumber >1