我有一个这样的表,我正在寻找不必要的重复行:
我想找到First Name,Last Name和Occupation列相同的行 - 在这种情况下是行1和3.我不想指定相同的值应该是什么,因为我不知道。< / p>
我已经尝试了this question的答案,但我不认为它适用于这种情况。
答案 0 :(得分:1)
简单的解决方案是添加一个HAVING子句,其中所有三列分组后都有重复
SELECT
ID, FirstName, LastName, Occupation, Age
FROM table1
GROUP BY
FirstName,
LastName,
Occupation
HAVING COUNT(*) > 1
这是一个DEMO,其中有两行重复,以确保其正常运行
修改强>
我的第一个理解是你想要在重复时返回一行..如果你想要一个将返回所有重复行的查询.. 然后在这里......这将返回第1行和第3行
SELECT p1.* FROM people p
JOIN people p1
ON p1.firstname = p.firstname
AND p1.lastname = p.lastname
AND p1.occupation = p.occupation
GROUP BY id
HAVING COUNT(*) > 1;
另一个DEMO
答案 1 :(得分:0)
自我加入,3次(未经测试):从your_table a,your_table b,your_table c,your_table d中选择a。* 哪里 a.fname = b.fname和a.lname = c.lname和a.occupation = d.occupation