mysql - 在 mysql 查询中同时列出 null 和 not null

标签 mysql null

假设我有 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/

相关文章:

php - 如何从 PHP 使用 MySQL 在多个列中搜索多个单词?

PHP/MySQL 安全 我可以屏蔽与数据库的连接吗?

c - 在 main() 中将指针分配给 NULL 后,for 循环不执行

string - 使用 JSF 转换器输出时将 null 或空字符串替换为指定值

C - fopen 有时有效,有时无效

c - 为什么我的代码中的 realloc() 和 free() 会失败?

php - 同一张表上的两个 JOINS

mysql - 如何在 MySQL 中查找具有与另一个表行数据相似的数据的所有行?

php - Laravel 4 急切加载关系问题

sql-server - 用最后一个非空值填充空行值 - SQL 表