我已经对一个巨大的表(十亿行)中的所有列运行了上面的查询,除了有几个返回 0 之外,一切都很好。这怎么可能?
COUNT(DISTINCT)在两种情况下可以返回零。第一个是列/表达式的所有值的计算结果为NULL。第二个是WHERE条款(或JOIN) 过滤掉所有行。
COUNT(DISTINCT)
NULL
WHERE
JOIN
如果你没有WHERE or JOIN,那么值都是NULL for <Columnb>.
<Columnb>