clickhouse学习笔记-7-数据聚合

一、数值运算

  • sum 简单求和

  • sumWithOverflow

    同步求和参数的数据类型,只适用于数字

  • sumIf 条件求和

    ifNull(x, alt)

    x - 是否为空值

    alt - 为空,函数返回的值

  • intDivOrZero 除法

  • round

二、类型判断

  • ifNull

三、分组

argMin、argMax
argMin(arg, val)
取val最小时的arg值。如果有多个arg对应同一个最小值val,取遇到的第一个值,argMax同理

-- 应用
SELECT
    id,
    country,
    argMax(uuid,local_modify_date) AS uuid,
    argMax(name,local_modify_date) AS name
FROM
    db.table_name
GROUP BY
    id,
    country

如果存在GROUP BY子句,则在该子句中必须包含一个表达式列表。其中每个表达式将会被称之为“key”。 SELECT,HAVING,ORDER BY子句中的表达式列表必须来自于这些“key”或聚合函数。简而言之,被选择的列中不能包含非聚合函数或key之外的其他列。

如果查询表达式列表中仅包含聚合函数,则可以省略GROUP BY子句,这时会假定将所有数据聚合成一组空“key”。

与SQL标准不同的是,如果表中不存在任何数据(可能表本身中就不存在任何数据,或者由于被WHERE条件过滤掉了),将返回一个空结果,而不是一个包含聚合函数初始值的结果。

在GROUP BY子句中不支持使用Array类型的列。

常量不能作为聚合函数的参数传入聚合函数中。例如: sum(1)。这种情况下你可以省略常量。例如:count()

NULL 处理

对于GROUP BY子句,ClickHouse将 NULL 解释为一个值,并且支持NULL=NULL

你可能感兴趣的:(clickhouse,数据库专栏,大数据专栏)