从同一个表中选择Count返回不同的数字

时间:2016-01-14 02:18:00

标签: mysql sql mysql-workbench

我在两个单独的列上执行count函数,但是从表中得到不同的结果。这有什么可能,因为Count应该包含Null值?

SELECT COUNT(Record_Id) FROM my_schema.table

返回40493

SELECT COUNT(Status) FROM my_schema.table

返回40249

3 个答案:

答案 0 :(得分:1)

这并不奇怪。带有表达式作为参数的COUNT()计算非NULL值的数量。

因此,这表示Record_IdNULLstatus六倍。

您可以使用COUNT(*)获取记录总数。

答案 1 :(得分:1)

count()不包含NULL值。这特别是为了计算非空值,尤其是在具有大量外连接的复杂查询中。

如果要获取行数,请不要在特定列上使用count,而只需使用COUNT(1),或者对结果集中的每一行重复的任何其他标量值。< / p>

答案 2 :(得分:1)

如果选择特定列的计数,则不会计算空值。请参阅here