Hive学习笔记:多列求最大值、最小值
一、最大值
当在 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;
参考链接:hive sql 多行值取最大值、最小值
参考链接:hive中取最大值最小值的函数