hivesql求多个字段的最⼩值和最⼤值的办法
1. 准备数据表test2
create table test2(
a int,
b int,
c int,
d int,
e int);
2. 准备2条数据
insert into table test2 values(5,1,3,8,6);
insert into table test2 values(6,2,5,11,9);
查询显⽰如下:
hive 字符串转数组3. 现在要求出a,b,c,d,e 5个字段中每⾏的最⼤值和最⼩值。
虽然hive中有min和max,但是那是求某列字段的最⼩值和最⼤值,在这⾥⾏不通。接下来使⽤hive中的数组排序⽅法来求解。思路:先将字段合并到数组⾥⾯,然后使⽤数组排序函数。
select sort_array(array(a,b,c,d,e)) from test2;
结果显⽰如下:
这样,第⼀个就是最⼩值,最后⼀个就是最⼤值。完整代码如下:
select arr[0]as min_val, arr[4]as max_val
from(
select sort_array(array(a,b,c,d,e)) arr
from test2
)a;
最终结果如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论