当前位置: 首页 > 面试题库 >

为什么未在COUNT(列名)中计算空值

雷曜灿
2023-03-14
问题内容

因此,前几天我在工作中遇到了一些问题,试图计算运行导入后有多少个空值。

所以我做了:

select COUNT(columnname) from table 
WHERE ColumnName is null

哪个不算空值…

然后我做到了

select COUNT(*) from table 
WHERE ColumnName is null

这给了我计数。

所以,令我感到困扰的是为什么它不计算空值。

我看了这个问题(以及对Google的良好搜索…):
在SQL中,count(column)和count(*)之间有什么区别?,虽然它告诉我COUNT(columnname)不计算空值,但我想确切地知道 为什么 使用这种方法不计算空值?

非常感谢,詹姆斯。


问题答案:

COUNT 对值进行计数,因为null不是值,所以不进行计数。

如果要计算所有空值,可以执行以下操作:

SELECT COUNT(ID) as NotNull, SUM(CASE WHEN ID IS NULL then 1 else 0 end) as NullCount


 类似资料:
  • 问题内容: 计算在查询中声明的两个临时列名称的sum()-在SQL中 表只有两列。将total和total1作为临时名称给出。 如何计算作为与列名声明为临时名称为查询执行。 使用cte不支持重复的列名吗? 如何利用它来支持重复的列名 问题答案: 您不能直接做到这一点-您需要使用CTE(公用表表达式)之类的东西-像这样: 它在SQL Server 2005和更高版本(以及支持CTE(这是ANSI标准

  • 本文向大家介绍count(*),count(1)和count(列名)的区别?相关面试题,主要包含被问及count(*),count(1)和count(列名)的区别?时的应答技巧和注意事项,需要的朋友参考一下 count(*),count(1)在统计的时候不会忽略Null,count(列名)在统计的时候会忽略Null。若列名为主键,count(列名)会比count(1),count(*)快,反之则c

  • 在一个空列表中,当循环计算到时发生的过程是什么? 例如: 本质上,我想知道

  • 问题内容: 我有以下查询: 会有什么区别,如果我更换,所有呼叫count(column_name)到count(*)? 这个问题的灵感源于我如何在Oracle的表中找到重复的值?。 为了澄清接受的答案(也许我的问题),替换count(column_name)与count(*)将在包含一个结果返回额外的行null和计数null列中的值。 问题答案: 计数为而不是 [编辑]添加了此代码,以便人们可以运