目前,我有一个MySQL表,里面有几列。以下是包含数据的表格示例:
+----------+---------------------+
| hospt_id | file_id | clinic_id |
+----------+---------------------+
| 212837 | 9 | NULL |
| 123837 | 14 | 2134319 |
| 345567 | 9 | NULL |
| 123456 | 14 | 2134320 |
| 123456 | 14 | 2134320 |
+----------+---------------------+`
我要做的是编写一个查询,返回三列重复的所有记录。
例如,重复最后两行。所以我希望得到那些回来的。我知道如何对单个列执行重复搜索,但不知道如何对多个列执行操作。
答案 0 :(得分:4)
您只需要按所有三条记录进行分组,即可计算每组中的行数。然后,您可以将其过滤到having
子句中具有多个匹配行的那些。
select hospt_id, file_id, clinic_id, count(*)
from <table>
group by hospt_id, file_id, clinic_id
having count(*) > 1;