【问题标题】:ClickHouse: How to get argMax for array of tuplesClickHouse:如何获取元组数组的 argMax
【发布时间】:2021-11-12 07:56:31
【问题描述】:

任务是获取具有最大第一项的元组。还有比以下更好的方法吗?

select arrayMax(u.a.1) first_item_max_in_array, 
    indexOf(u.a.1,first_item_max_in_array) index_in_array, 
    u.a[index_in_array].2 arg_max_second_item_first_item 
from (
    select [(1,10),(2,20),(3,30)] a
) u

【问题讨论】:

    标签: clickhouse


    【解决方案1】:

    考虑使用Array-combinator

    WITH [(1, 10), (2, 20), (3, 30)] AS arr
    SELECT argMaxArray(arr.2, arr.1) AS result
    
    /*
    ┌─result─┐
    │     30 │
    └────────┘
    */
    

    【讨论】:

    • 谢谢。不知何故,我错过了这个选项,而是通过类比 arraySum、arrayAvg 等名称来代替 arrayArgMax。有趣的是,存在诸如 arraySum 和 sumArray 之类的函数名称。
    • @unz np,我很乐意提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 2021-12-27
    相关资源
    最近更新 更多