假设我有 table
NAME | ID | REF
foo1 | 1 | NULL
foo2 | 2 | 1234
foo2 | 3 | 567
foo1 | 4 | NULL
foo3 | 5 | 89
我想在一个查询中计算 NULL 和 NOT NULL 的所有实例,这样我就可以说
NAME | null | not null
foo1 | 0 | 2
foo2 | 2 | 0
foo3 | 0 | 1
我可以运行这两个查询
select NAME,count(*) from TABLE where REF is not null
select NAME,count(*) from TABLE where REF is null
但我确信一定有一种简单的方法可以在一个 mysql 查询中完成。
最佳答案
你可以像这样在 ISNULL() 上使用 SUM()
select NAME, sum(isnull(REF)) as is_null, sum(not isnull(REF)) as is_not_null from TABLE group by NAME;
SUM(1) 等价于 COUNT(*),所以它真的可以计数。
关于mysql - 在 mysql 查询中同时列出 null 和 not null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1270895/