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