SabreWolfy Asked: 2015-08-15 07:14:58 +0800 CST2015-08-15 07:14:58 +0800 CST 2015-08-15 07:14:58 +0800 CST 总计为 0 的额外“计数”行 772 考虑以下: db=> SELECT ga, count(ga) FROM gb GROUP BY ga ORDER BY ga ; 给出以下输出: ga | count ---+------ ? | 200 A | 100 B | 50 | 0 (4 rows) 为什么会有一个空ga的且计数为零的额外行? select count 1 个回答 Voted Best Answer ypercubeᵀᴹ 2015-08-15T07:27:44+08:002015-08-15T07:27:44+08:00 为什么会有一个空 ga 和计数为零的额外行? 因为列中有NULL值ga。 为什么计数为零? WhileCOUNT(*)永远不能给出 0 作为结果(因为它对行进行计数),COUNT(column)或者COUNT(expression)可以给出 0,因为它不计算列/表达式中的空值。 因此,唯一合乎逻辑的解释是该ga列有一些空值。 多少? 你可以通过运行找到: SELECT ga, count(ga) AS count_non_nulls, count(*) AS count_all FROM gb GROUP BY ga ORDER BY ga ; 这会给你类似的东西: ga | count_non_nulls | count_all ---+-----------------+----------- ? | 200 | 200 A | 100 | 100 B | 50 | 50 | 0 | 17 -- some number >= 1 (4 rows)
因为列中有
NULL
值ga
。While
COUNT(*)
永远不能给出 0 作为结果(因为它对行进行计数),COUNT(column)
或者COUNT(expression)
可以给出 0,因为它不计算列/表达式中的空值。因此,唯一合乎逻辑的解释是该
ga
列有一些空值。你可以通过运行找到:
这会给你类似的东西: