2017-02-03 95 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'字段看起来很不错。 –