gpt4 book ai didi

sql-server - 将 WHERE 与 Group By 一起使用并具有

转载 作者:行者123 更新时间:2023-12-01 00:17:31 27 4
gpt4 key购买 nike

假设我有一个包含 3 列的表 (a, b, c) 具有以下值:

+---+------+---+
| a | b | c |
+---+------+---+
| 1 | 5 | 1 |
| 1 | NULL | 1 |
| 2 | NULL | 0 |
| 2 | NULL | 0 |
| 3 | NULL | 5 |
| 3 | NULL | 5 |
+---+------+---+

我想要的输出: 3

我只想从 a 列中选择那些不同的值,如果 c 中的值不为 0,则该值的每次出现在 b 列中都为 NULL。因此,从我想要的输出中,“1”不会出现因为即使第 2 次出现的“1”为 NULL,b 列中也有一个“5”。而“2”不会进来,因为c的值为0

我当前使用的查询不起作用:

SELECT a FROM tab WHERE c!=0 GROUP BY a HAVING COUNT(b) = 0

最佳答案

你可以使用 HAVING 子句来做到这一点:

SQL Fiddle

SELECT a
FROM tbl
GROUP BY a
HAVING
SUM(CASE
WHEN b IS NOT NULL OR c = 0 THEN 1
ELSE 0 END
) = 0

关于sql-server - 将 WHERE 与 Group By 一起使用并具有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33005139/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com