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

本文详细介绍了ClickHouse中的数值运算功能,如sum、sumWithOverflow、sumIf和intDivOrZero,以及类型判断函数ifNull。重点讲解了如何利用argMin和argMax进行分组操作,包括示例和NULL处理规则。适合深入理解ClickHouse数据分析的读者。
摘要由CSDN通过智能技术生成
一、数值运算
  • 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值