我想写一个查询来按ID1,ID2进行分组,但是仅返回ID2的唯一ID1> 1的ID。
我有这样的数据:
+------+------+
| ID1 | ID2 |
+------+------+
|1 |A |
+------+------+
|1 |A |
+------+------+
|2 |A |
+------+------+
|3 |B |
+------+------+
|3 |B |
+------+------+
|4 |C |
+------+------+
|5 |C |
+------+------+
|6 |D |
+------+------+
|6 |D |
+------+------+
|7 |E |
+------+------+
理想情况下,我的输出将如下所示:
+------+
| ID2 |
+------+
|A |
+------+
|C |
+------+
注意,对于ID2 ='B'或ID2 ='D'来说,> 1条记录的记录如何,但是它们具有相同的ID1。在示例A中,即使存在重复的ID1值“1”,我还是要选择它,因为还有另一个唯一ID1-“2”。
最佳答案
您可以在COUNT(DISTINCT ID1)
子句中使用having
,如下所示:
SELECT ID2
FROM tbl
GROUP BY sID2
HAVING COUNT(DISTINCT ID1) > 1
关于sql - 使用两个键的SQL组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55065142/