前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[1175]hive函数greatest、least多列取最大最小值

[1175]hive函数greatest、least多列取最大最小值

作者头像
周小董
发布2023-10-10 08:26:23
4940
发布2023-10-10 08:26:23
举报
文章被收录于专栏:python前行者
用多了 max() 、min() 今天刚好遇到了需要取连续6年中营收最大的逻辑(6列)

greatest函数

  • 取多列最大值
代码语言:javascript
复制
select greatest(-99, 0, 73) --73
  • 存在 null 或者字符串
代码语言:javascript
复制
select greatest(-99, 0, 73, null) --null

select greatest(-99, 0, 73, 'string') --null
  • 存在日期
代码语言:javascript
复制
select greatest('2022-01-01','2022-06-01','2022-06-09') --2022-06-09
  • 但实际问题中很可能存在null,想了下,先把null做替换,然后再取多列最大
代码语言:javascript
复制
select customer_id,
    greatest(income_2016,income_2017,income_2018,income_2019,income_2020,income_2021) income
from
    (
    select customer_id,
        if(income_2016 is null,-9999999,income_2016) income_2016,
        if(income_2017 is null,-9999999,income_2017) income_2017,
        if(income_2018 is null,-9999999,income_2018) income_2018,
        if(income_2019 is null,-9999999,income_2019) income_2019,
        if(income_2020 is null,-9999999,income_2020) income_2020,
        if(income_2021 is null,-9999999,income_2021) income_2021
    from table
    ) a;
image.png
image.png

least函数

  • 取多列最小值
代码语言:javascript
复制
select least(-99, 0, 73) -- -99
  • 存在 null 或者字符串
代码语言:javascript
复制
select least(-99, 0, 73, null) --null

select least(-99, 0, 73, 'string') --null
  • 存在日期
代码语言:javascript
复制
select least('2022-01-01','2022-06-01','2022-06-09') -- 2022-01-01

参考:https://blog.csdn.net/szdxltt/article/details/125204552

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 用多了 max() 、min() 今天刚好遇到了需要取连续6年中营收最大的逻辑(6列)
  • greatest函数
  • least函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档