一、最大值
当在 Hive
中需要对多列数据求最大值时,可以使用函数 greatest(a, b, c, d)
实现。
select greatest(a, b, c) from
(
select 10 as a,
20 as b,
30 as c
) dd;
-- 结果:30
举个具体栗子:计算用户消费时,如果用户套餐有最低消费129元的话,不满129则按129收费,则计算为:greatest(ARPU, 129)
。
二、最小值
同理,求多列最小值可使用函数 least(a, b, c, d)
实现。
-- 例子一
select least(a, b, c) from
(
select 10 as a,
20 as b,
30 as c
) dd
-- 结果:10
-- 例子二
select least(a, b, c, d) from
(
select 10 as a,
20 as b,
30 as c,
null as d
) dd;
-- 结果:null
注意:关注列中的空值 NULL
,greatest
和 least
会判断空值为最大、最小,导致出错。
使用两个函数时,注意需要同样类型的数据,才可进行比较。
三、max和min
取某一列的最大、最小值,可以使用 max
和 min
函数实现。
select max(age) as age_max,
min(age) as age_min
from age_table;
标签:--,age,Hive,最小值,least,多列,最大值,select From: https://www.cnblogs.com/hider/p/17782542.html参考链接:hive sql 多行值取最大值、最小值
参考链接:hive中取最大值最小值的函数