Hive 常用查询操作

一.空字段赋值

1.函数说明
在这里插入图片描述
2.测试表如下
在这里插入图片描述
3.如果某一列某一行的值为 null ,则用-1代替
在这里插入图片描述
4.或者这样用
在这里插入图片描述
当年份为 null 时,输出年份对应的地址:
在这里插入图片描述

二.case when then end

这里新建一张表:
在这里插入图片描述
在这里插入图片描述

select variety,
sum(case year when 1931 then 1 else 0 end) var_1931,
sum(case year when 1932 then 1 else 0 end) var_1932
from barley2
group by variety;

这里也可以写成 case when year=1931。
做到这种效果:
在这里插入图片描述

三.行转列

在这里插入图片描述
这里有一张表:
在这里插入图片描述
concat 函数:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

select collect_set(xingzuo) as AfterConcat from contract;

做到去重的效果
在这里插入图片描述
在这里插入图片描述

select t1.c_b,collect_set(name)
from(select concat_ws(",",xingzuo,num) as c_b,name from contract) as t1
group by t1.c_b;

在这里插入图片描述

select t1.c_b,collect_set(name)[0]
from(select concat_ws(",",xingzuo,num) as c_b,name from contract) as t1
group by t1.c_b;

在这里插入图片描述

select t1.c_b,concat_ws("|",collect_set(name))
from(select concat_ws(",",xingzuo,num) as c_b,name from contract) as t1
group by t1.c_b;

在这里插入图片描述
目的达到。

四.列转行

列转行就是行转列的反过来啦~
在这里插入图片描述

持续更新~

猜你喜欢

转载自blog.csdn.net/qq_39327985/article/details/89044059
今日推荐