mysql - 如何选择仅在另一列中包含空值的分组行?
问题描述
这有点令人困惑,所以我将尝试在下表中举例说明:
示例表
ID | 数据1 | 数据2 | 数据3 |
---|---|---|---|
1 | 无效的 | 无效的 | 无效的 |
1 | 无效的 | 无效的 | 无效的 |
2 | 1 | 无效的 | 1 |
2 | 1 | 无效的 | 无效的 |
2 | 1 | 无效的 | 1 |
3 | 1 | 无效的 | 无效的 |
3 | 1 | 无效的 | 1 |
4 | 无效的 | 无效的 | 无效的 |
因此,按相同的 ID 分组,我只想显示所有列中的所有数据都为空的那些 ID。在上面的表格示例中,只有 ID 1 和 4。
我正在尝试使用的代码 - 仅供参考:
select id
from example-table
group by id, data1, data2, data3
having data1 is null and data2 is null and data3 is null;
有什么建议么?
解决方案
您可以仅按 id 分组并在HAVING
子句中设置条件:
SELECT id
FROM tablename
GROUP BY id
HAVING COALESCE(MAX(data1), MAX(data2), MAX(data3)) IS NULL;
推荐阅读
- html - 打字稿如何更改scss文件中的内容(开关)
- actions-on-google - 如何帮助 Google 助理识别我的操作名称?
- sql-server - 在某个符号之间查找值
- oracle - 在 SQL Plus 中执行时出现 Oracle 警告消息
- c - 关于在 C 中的函数调用中将箭头符号作为参数传递的困惑
- spring-security - 实现 PersistentTokenBasedRememberMeServices 的正确方法
- codeigniter - Sendgrid 事件通知 POST 数据始终为空
- python - 如何在 Django 中创建自更新变量?
- opticalflow - 给定每帧的一组像素单元,如何测量两帧之间的差异?
- react-select - 我们可以以编程方式删除 react-select 中的选定选项之一吗?