具有重复值的多个列

时间:2015-04-08 04:09:43

标签: mysql

目前,我有一个MySQL表,里面有几列。以下是包含数据的表格示例:

+----------+---------------------+
| hospt_id | file_id | clinic_id |
+----------+---------------------+
|   212837 |       9 |      NULL |
|   123837 |      14 |   2134319 |
|   345567 |       9 |      NULL |
|   123456 |      14 |   2134320 |
|   123456 |      14 |   2134320 |
+----------+---------------------+`

我要做的是编写一个查询,返回三列重复的所有记录。

例如,重复最后两行。所以我希望得到那些回来的。我知道如何对单个列执行重复搜索,但不知道如何对多个列执行操作。

1 个答案:

答案 0 :(得分:4)

您只需要按所有三条记录进行分组,即可计算每组中的行数。然后,您可以将其过滤到having子句中具有多个匹配行的那些。

select hospt_id, file_id, clinic_id, count(*)
  from <table>
  group by hospt_id, file_id, clinic_id
  having count(*) > 1;

以下是演示:http://sqlfiddle.com/#!9/91bf9/2