首页 > 解决方案 > 有可能:“SELECT COUNT (*) < SELECT COUNT (VALUE)?”

问题描述

结果值SELECT COUNT (*)可以小于值SELECT COUNT (VALUE)吗?

为什么?请解释答案。

标签: mysqlsqlgroup-by

解决方案


COUNT(*)计算每条记录,同时COUNT(value)只考虑非空值。对于给定的数据集,COUNT(*)不能小于COUNT(value),但可以更大。

考虑以下数据集:

val
1
2
null

我们有 3 条记录,其中一条的值为空。现在如果我们运行:

select count(*), count(val) from t

我们会得到:

计数(*) | 计数(val)
--------: | ---------:
       3 | 2

DB Fiddlde 上的演示


推荐阅读