繁体   English   中英

Select 在另一列中具有相同值的不同行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM