sql - 从 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 为空的国家/地区。
解决方案
您可以简单地使用group by
and having
:
select country
from t
group by country
having max(commnumber) is null;
推荐阅读
- excel - Excel VBA:错误 1004。脚本之前工作
- android - 在 android studio 中使用 android.mk 而不是 gradle
- c - 宏重新定义
- javascript - Amcharts 4 pie 上的 Font Awesome 或图标
- angular - Angular 7:NullInjectorError 测试失败,服务仍然在组件中工作
- javascript - JS在数组中查找多个值
- mule - 在dataweave 2中创建子数组
- swift - UIPickerView 在 UITextField 中显示多行
- mysql - 哪个进程会更快的后端工作或 sql 查询?
- entity-framework - 如何 LINQ 查询显示重复的记录 2 次或少于两次重复