count
计数行数或非空值。
ClickHouse支持以下 count 语法:
count(expr)或COUNT(DISTINCT expr)。count()或COUNT(*). 该count()语法是ClickHouse特定的。
参数
该函数可以采取:
- 零参数。
- 一个 表达式。
返回值
- 如果没有参数调用函数,它会计算行数。
- 如果 表达式 被传递,则该函数计数此表达式返回非null的次数。 如果表达式返回 可为空类型的值,
count的结果仍然不Nullable。 如果表达式对于所有的行都返回NULL,则该函数返回 0 。
在这两种情况下,返回值的类型为 UInt64。
详细信息
ClickHouse支持 COUNT(DISTINCT ...) 语法,这种结构的行为取决于 count_distinct_implementation 设置。 它定义了用于执行该操作的 uniq*函数。 默认值是 uniqExact函数。
SELECT count() FROM table 这个查询未被优化,因为表中的条目数没有单独存储。 它从表中选择一个小列并计算其值的个数。
示例
示例1:
示例2:
这个例子表明 count(DISTINCT num) 是通过 count_distinct_implementation 的设定值 uniqExact 函数来执行的。