clickhouse的argMin()和argMax()函数使用


函数 语法
argMin(arg,val) 计算最小值的arg值。如果val的最小值有几个不同的arg值,则遇到的第一个值是输出。
argMax(arg,val) 计算最大值的参数值。如果存在多个不同的arg值来表示val的最大值,则遇到的第一个值是输出。
argMin() 与argMax() 其实是相反的,一个求多值中最小,一个求多值中最大。
我们看一下官网的介绍,以及一个求薪水最高的员工的例子:


求最低薪水的员工:

┌─user─────┬─salary─┐
│ director │ 5000 │
│ manager │ 3000 │
│ worker │ 1000 │
└──────────┴────────┘

SELECT argMin(user, salary) FROM salary

┌─argMin(user, salary)─┐
│ worker │
└──────────────────────┘

 



自定义一个事例,在登录表中,求用户当天最后一次或当天第一次登录的设备

create table test
(
userId Int32,
userName String,
phone String,
loginTime DateTime
)
engine = Memory;

select argMax(userId,loginTime) userId, phone from test.test
where loginTime between '2020-09-23 00:00:00' and '2020-09-23 23:59:59'
group by phone;

 

posted @ 2022-02-16 16:51  渐逝的星光  阅读(668)  评论(0编辑  收藏  举报