[英]Select distinct rows with same value in another column
我有一张这样的桌子:
+--------+----------+
|PersonID|IsDomestic|
+--------+----------+
|1 |1 |
+--------+----------+
|1 |0 |
+--------+----------+
|2 |1 |
+--------+----------+
|2 |1 |
+--------+----------+
|2 |1 |
+--------+----------+
|1 |1 |
+--------+----------+
|3 |0 |
+--------+----------+
|4 |1 |
+--------+----------+
如果相同的 PersonId 在 IsDomestic 列中至少有一个 0 值,则不应返回此 PersonId,但如果 PersonId 只有 1 个值,则应返回此 PersonId 但只返回一次。 这是表格的结果:
+--------+
|PersonID|
+--------+
|2 |
+--------+
|4 |
+--------+
您需要的是带有条件聚合的HAVING
:
SELECT PersonID
FROM dbo.YourTable
GROUP BY PersonID
HAVING COUNT(CASE IsDomestic WHEN 0 THEN 1 END) = 0;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.