首页 > 解决方案 > 从 col2 为 NULL 的 col 中选择 group by

问题描述

我必须通过在 MS SQL 服务器中执行一些 SQL 来编写报告。我拥有的数据是这样的:

UserID,Country, CommNumber
00001, IN, 1001
00002, IN, NULL
00003, US, 1002
00004, US, 1003
00005, DE, NULL
00006, DE, NULL
00007, US, NULL

现在我想调出所有 CommNumber 为 NULL 的国家/地区列表。即使某个用户在该国家/地区拥有 CommNumber,我也不希望该国家/地区出现在列表中。所以从上面看,只有 DE 的所有两个用户在 CommNumber 上都为 NULL。US 和 IN 至少有一个 CommNumber 不为 NULL 的用户。

希望这个问题有意义。

我的尝试是:

SELECT
[COUNTRY]
,COUNT(*) AS 'COMMNUMBER_USERS'
FROM
<TABLENAME> 
WHERE [COMMNUMBER] IS NULL
GROUP BY [C]
ORDER BY [COMMNUMBER_USERS]

以上没有给我正确的结果。我理解为什么,因为我无法告诉它我只想要所有 commnumber 为空的国家/地区。

标签: sqlsql-servergroup-by

解决方案


您可以简单地使用group byand having

select country
from t
group by country
having max(commnumber) is null;

推荐阅读