【发布时间】:2016-11-07 13:21:39
【问题描述】:
来源数据:
+-----+-------------+--------+---------+
| ID | CandidateID | Rating | Name |
+-----+-------------+--------+---------+
| 777 | 119 | 5 | Fred |
| 777 | 120 | 5 | Tony |
| 777 | 121 | 3 | Ben |
| 888 | 131 | 4 | Joe |
| 888 | 132 | 4 | Matt |
| 888 | 133 | 1 | Russell |
+-----+-------------+--------+---------+
我需要查找重复项(其中 ID 和 Rating 相同),但还要以某种方式保留对它们的引用 (CandidateID) 以在结果表中显示它们的名称。 期望的输出(仅显示 ID AND Rating 相同的行):
+-----+-------------+--------+------+
| ID | CandidateID | Rating | Name |
+-----+-------------+--------+------+
| 777 | 119 | 5 | Fred |
| 777 | 120 | 5 | Tony |
| 888 | 131 | 4 | Joe |
| 888 | 132 | 4 | Matt |
+-----+-------------+--------+------+
我最初的方法是按 ID 和评级进行 GROUP,生成 COUNT,然后执行 HAVING COUNT(*) >= 2,然后列出该结果中存在 ID 的所有行。可悲的是,这也返回非重复行。有没有更好的解决方案?
【问题讨论】:
-
您可以发布您正在使用的实际查询吗?
标签: sql group-by duplicates