ClickHouse:如何获取元组数组的argMax



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

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

考虑使用数组组合子:

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

最新更新