我有一张桌子
create table us
(
a number
);
现在我有了如下数据:
a
1
2
3
4
null
null
null
8
9
现在我需要一个查询来计算a列中的null 和 not NULL值
发布于 2009-08-13 13:09:15
这适用于Oracle和SQL Server (您也许能够让它在另一个RDBMS上工作):
select sum(case when a is null then 1 else 0 end) count_nulls
, count(a) count_not_nulls
from us;
或者:
select count(*) - count(a), count(a) from us;
发布于 2009-08-13 13:06:59
如果我理解正确的话,您希望在一列中计算所有NULL和all NOT NULL ...
如果这是正确的:
SELECT count(*) FROM us WHERE a IS NULL
UNION ALL
SELECT count(*) FROM us WHERE a IS NOT NULL
在阅读评论后,编辑以获得完整的查询:]
SELECT COUNT(*), 'null_tally' AS narrative
FROM us
WHERE a IS NULL
UNION
SELECT COUNT(*), 'not_null_tally' AS narrative
FROM us
WHERE a IS NOT NULL;
发布于 2009-08-13 13:06:58
下面是一个在Oracle上运行的快速而粗糙的版本:
select sum(case a when null then 1 else 0) "Null values",
sum(case a when null then 0 else 1) "Non-null values"
from us
https://stackoverflow.com/questions/1271810
复制相似问题