我们如何在表中找到包含多个列的重复行,例如 表是 Table 1
EMPID FNAME LNAME
1 VIKAS AHLAWAT
1 VIKAS AHLAWAT
2 NIKITA JAIN
3 ASHISH KUMAR
4 NIKHIL SHARMA
5 ANISH KADIAN
6 ANISH KADIAN
和预期结果应如下所示
EMPID FNAME LNAME
1 VIKAS AHLAWAT
1 VIKAS AHLAWAT
5 ANISH KADIAN
6 ANISH KADIAN
答案 0 :(得分:0)
基于聚合的解决方案适用于所有数据库:
select t1.*
from your_table t1
join (
select fname, lname
from your_table
group by fname, lname
having count(*) > 1
) t2 on t1.lname = t2.lname
and t1.fname = t2.fname
如果您使用的是支持窗口功能的数据库,则可以使用:
select empid, fname, lname
from (
select t.*, count(*) over (partition by fname, lname) cnt
from your_table t
) t
where cnt > 1
如果你只想要多次出现的名字(而不是他们的主张):
select fname, lname
from your_table
group by fname, lname
having count(*) > 1
答案 1 :(得分:0)
此查询将显示所需的结果。
select count(empid) cnt,
empid,
fname,
lname
from table_1
group by fname, lanem
having count(empid) > 1
order by 1 desc