如何在 ClickHouse 中使用 lambda max(a,b) 函数?

Posted

技术标签:

【中文标题】如何在 ClickHouse 中使用 lambda max(a,b) 函数?【英文标题】:How to have a lambda max(a,b) function in ClickHouse? 【发布时间】:2018-11-16 10:03:20 【问题描述】:

有没有办法使用 ClickHouse 的 lambda 对两个整数执行最大函数? 像这样:

SELECT 
    [0,1,2,3,4,5] as five, 
    arrayMap(i -> max(five[i], 3), arrayEnumerate(five)) as X

返回

     five        expected X   
0,1,2,3,4,5     3,3,3,3,4,5

【问题讨论】:

【参考方案1】:

不确定我是否理解您的示例(它在语法上不正确),但对于最大超过两个整数,ClickHouse 具有最大的功能(x,y):

SELECT 
  [0, 1, 2, 3, 4, 5] AS five, 
  arrayMap(i -> greatest(i, 3), five) AS X

┌─five──────────┬─X─────────────┐
│ [0,1,2,3,4,5] │ [3,3,3,3,4,5] │
└───────────────┴───────────────┘

【讨论】:

这正是我所需要的。我在文档中错过了它。谢谢。

以上是关于如何在 ClickHouse 中使用 lambda max(a,b) 函数?的主要内容,如果未能解决你的问题,请参考以下文章

基于ClickHouse的用户行为(路径)分析实践

基于ClickHouse的用户行为(路径)分析实践

规范化 ClickHouse 中的列

如何在 Travis 中使用 Clickhouse

如何在 clickhouse 中使用 groupBitmapAnd 和 AggregatingMergeTree 引擎?

如何在 ClickHouse 中使用分隔符连接 INT