ClickHouse笔记

groupArray

语法 :

groupArray(x)
或
groupArray(max_size)(x)

创建参数值的数组。
值可以按任何(不确定)顺序添加到数组中。

第二个版本(带有 max_size 参数)将结果数组的大小限制为 max_size 个元素。
例如, groupArray (1) (x) 相当于 [any (x)]

在某些情况下,您仍然可以依赖执行顺序。这适用于SELECT(查询)来自使用了 ORDER BY 子查询的情况。

例:

select PersonId,groupArray(ThisDate) AS dates from 
(  
   select PersonId,ThisDate 
   from TestTable 
   where PersonId >0
   order by PersonId,ThisDate desc              
)
group by PersonId 

查询结果如下:
按照PersonId分组,把每组的ThisDate放在同一行dates里

lambda(x, expr)

x -> expr – 对应函数 lambda(x, expr)

高阶函数

运算符, lambda(params, expr) 函数
用于描述一个lambda函数用来传递给其他高阶函数。箭头的左侧有一个形式参数,它可以是一个标识符或多个标识符所组成的元祖。箭头的右侧是一个表达式,在这个表达式中可以使用形式参数列表中的任何一个标识符或表的任何一个列名。

示例: x -> 2 * x, str -> str != Referer.

高阶函数只能接受lambda函数作为其参数。

高阶函数可以接受多个参数的lambda函数作为其参数,在这种情况下,高阶函数需要同时传递几个长度相等的数组,这些数组将被传递给lambda参数。

除了’arrayMap’和’arrayFilter’以外的所有其他函数,都可以省略第一个参数(lambda函数)。在这种情况下,默认返回数组元素本身。

arrayMap(func, arr1, …)
将arr
将从’func’函数的原始应用程序获得的数组返回到’arr’数组中的每个元素。
返回从原始应用程序获得的数组 ‘func’ 函数中的每个元素 ‘arr’ 阵列。
参考链接:https://clickhouse.com/docs/zh/sql-reference/functions/higher-order-functions/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值