hive函数——greatest、least 多列取最大最小值

前言

用多了 max() min() 今天刚好遇到了需要取连续6年中营收最大的逻辑(6列)

一、greatest函数

1.1 取多列最大值

select greatest(-99, 0, 73) –73

1.2 存在 null 或者字符串

select greatest(-99, 0, 73, null) –null

select greatest(-99, 0, 73, ‘string’) –null

1.3 存在日期

select greatest(‘2022-01-01′,’2022-06-01′,’2022-06-09’) –2022-06-09

1.4 但实际问题中很可能存在null 想了下 先把null做替换 然后再取多列最大

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;

hive函数——greatest、least 多列取最大最小值

二、least函数

2.1 取多列最小值

select least(-99, 0, 73) — -99

2.2 存在 null 或者字符串

select least(-99, 0, 73, null) –null

select least(-99, 0, 73, ‘string’) –null

2.3 存在日期

select least(‘2022-01-01′,’2022-06-01′,’2022-06-09’) — 2022-01-01

Original: https://blog.csdn.net/szdxltt/article/details/125204552
Author: 东吴桥下红楼前
Title: hive函数——greatest、least 多列取最大最小值

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/817514/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球