我在两个单独的列上执行count函数,但是从表中得到不同的结果。这有什么可能,因为Count应该包含Null
值?
SELECT COUNT(Record_Id) FROM my_schema.table
返回40493
SELECT COUNT(Status) FROM my_schema.table
返回40249
答案 0 :(得分:1)
这并不奇怪。带有表达式作为参数的COUNT()
计算非NULL
值的数量。
因此,这表示Record_Id
比NULL
多status
六倍。
您可以使用COUNT(*)
获取记录总数。
答案 1 :(得分:1)
count()
不包含NULL值。这特别是为了计算非空值,尤其是在具有大量外连接的复杂查询中。
如果要获取行数,请不要在特定列上使用count,而只需使用COUNT(1)
,或者对结果集中的每一行重复的任何其他标量值。< / p>
答案 2 :(得分:1)
如果选择特定列的计数,则不会计算空值。请参阅here