2017-02-03 49 views
1

我想查找通過SQL在整行中是否有重複的重複項。如何在這裏找到具有重複像在sql中查找重複的行

所有值2行

數據集

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組您的cols

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

通過簡單組和having子句

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可能它同樣具有相同ID的DEPS,所以沒必要將其包含在where子句

+0

我在我的表中有27列。自身加入是不可能的 – Abhijit

+0

某人請幫助 – Abhijit

+0

您應該使用一個id/discriminator列(s),它將作爲您的主鍵,並保證兩行中具有相同的值列確實是重複的。如果這種關係可以從您的數據中推斷出來,那就足夠加入它了。在這個具體的例子中,'id'字段看起來很不錯。 –