首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在单个查询中计算null和非NULL值

在单个查询中计算null和非NULL值
EN

Stack Overflow用户
提问于 2009-08-13 12:59:13
回答 26查看 480K关注 0票数 182

我有一张桌子

代码语言:javascript
复制
create table us
(
 a number
);

现在我有了如下数据:

代码语言:javascript
复制
a
1
2
3
4
null
null
null
8
9

现在我需要一个查询来计算a列中的null not NULL值

EN

回答 26

Stack Overflow用户

发布于 2009-08-13 13:09:15

这适用于Oracle和SQL Server (您也许能够让它在另一个RDBMS上工作):

代码语言:javascript
复制
select sum(case when a is null then 1 else 0 end) count_nulls
     , count(a) count_not_nulls 
  from us;

或者:

代码语言:javascript
复制
select count(*) - count(a), count(a) from us;
票数 270
EN

Stack Overflow用户

发布于 2009-08-13 13:06:59

如果我理解正确的话,您希望在一列中计算所有NULL和all NOT NULL ...

如果这是正确的:

代码语言:javascript
复制
SELECT count(*) FROM us WHERE a IS NULL 
UNION ALL
SELECT count(*) FROM us WHERE a IS NOT NULL

在阅读评论后,编辑以获得完整的查询:]

代码语言:javascript
复制
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;
票数 74
EN

Stack Overflow用户

发布于 2009-08-13 13:06:58

下面是一个在Oracle上运行的快速而粗糙的版本:

代码语言:javascript
复制
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
票数 50
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1271810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档