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

注意:关注列中的空值 NULLgreatestleast 会判断空值为最大、最小,导致出错。

使用两个函数时,注意需要同样类型的数据,才可进行比较。

三、max和min

取某一列的最大、最小值,可以使用 maxmin 函数实现。

select max(age) as age_max,
       min(age) as age_min
from age_table;

参考链接:hive sql 多行值取最大值、最小值

参考链接:hive中取最大值最小值的函数

posted @   Hider1214  阅读(2734)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2019-10-23 MySQL学习笔记:count(1)、count(*)、count(字段)的区别
2019-10-23 LeetCode:183.从不订购的客户
2019-10-23 LeetCode:620.有趣的电影
2019-10-23 LeetCode:181.超过经理收入的员工
2019-10-23 LeetCode:175.组合两个表
点击右上角即可分享
微信分享提示