2017-02-03 7 views
1

Я хочу найти дубликат, если есть дубликат всей строки через SQL. Как найти здесь 2 строки со всеми значениями, имеющие дубликаты, какНайти повторяющиеся строки в sql

Набор данных

id employee_name  dept Dept_name 
1 Abhijit   10 Physics 
1 Abhijit   10 Physics 
2 Debjit   20 Chemis 
3 partha   30 Maths 

Результат установлен

id employee_name  dept Dept_name 
1 Abhijit   10 Physics 
1 Abhijit   10 Physics 
+1

Сделайте самостоятельное соединение во всех полях. –

+0

См. Этот пост. http://stackoverflow.com/questions/7694263/filtering-duplicates-in-a-table-without-a-primary-key – n0klu

ответ

4

Вы можете использовать имеющие COUNT (*)> 1 группировку ваши колы

select id, employee_name , dept, Dept_name 
from my_table 
group by id, employee_name , dept, Dept_name 
having count(*) > 1 
2

Простая группа с помощью и подсчета фильтр, основанный в том, пунктом

Select id, employee_name, dept, dept_name 
From your_table 
Group by id, employee_name, dept, dept_name 
Having count(*) > 1; 
+0

его не ожидается – Abhijit

+0

У вас, вероятно, есть пробельный или непечатаемый символ в вашей строке. В противном случае вышеуказанное решение должно работать нормально. – GurV

0

Self join

SELECT a.* from employees a, employees b WHERE a.id = b.id and a.employee_name = b.employee_name and a.dept = b.dept; 

dept_name, вероятно, это то же самое для DEPS с тем же идентификатором, так что нет необходимости включать его в где положение

+0

У меня есть 27 столбцов в моем столе. Присоединение невозможно. – Abhijit

+0

. Кто-то, пожалуйста, помогите – Abhijit

+0

. Вы должны использовать столбец id/дискриминатора, который будет вашим первичным ключом, и гарантировать, что две строки, имеющие такое же значение в этом столбец действительно дублируются. Если такое отношение может быть выведено из ваших данных, тогда достаточно присоединиться к нему. В этом конкретном примере поле 'id' выглядит как хороший кандидат. –

Смежные вопросы