Hive _偏门常用查询函数(一)附带实例(空字段赋值、 CASE WHEN、行转列)
生活随笔
收集整理的这篇文章主要介绍了
Hive _偏门常用查询函数(一)附带实例(空字段赋值、 CASE WHEN、行转列)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
空字段赋值
- 函数说明
NVL:给值为NULL的数据赋值,它的格式是NVL( string1, replace_with)。它的功能是如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL。
- 数据准备:采用员工表
- 查询:如果员工的comm为NULL,则用-1代替
CASE WHEN
数据准备:
悟空 A 男 大海 A 男 宋宋 B 男 凤姐 A 女 婷姐 B 女 婷婷 B 女建表:
create table emp_sex( name string, dept_id string, sex string) row format delimited fields terminated by "\t"; load data local inpath "/root/emp_sex" into table emp_sex;要求:求出不同部门男女各多少人?
select dept_id,sum(case sex when '男' then 1 else 0 end) male_count,sum(case sex when '女' then 1 else 0 end) female_count from emp_sex group bydept_id;结果:
行转列
1.相关函数说明
CONCAT(string A/col, string B/col…):返回输入字符串连接后的结果,支持任意个输入字符串;
CONCAT_WS(separator, str1, str2,...):它是一个特殊形式的 CONCAT()。第一个参数剩余参数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将为 NULL。这个函数会跳过分隔符参数后的任何 NULL 和空字符串。分隔符将被加到被连接的字符串之间;
COLLECT_SET(col):函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。
2.数据准备
孙悟空 白羊座 A 大 射手座 A 宋宋 白羊座 B 猪八戒 白羊座 A 凤姐 射手座 A创表:
create table person_info( name string, constellation string, blood_type string) row format delimited fields terminated by "\t"; load data local inpath "/root/con" into table person_info;需求:把星座和血型一样的人归类到一起
selectt1.base,concat_ws('|', collect_set(t1.name)) name from(selectname,concat(constellation, ",", blood_type) basefromperson_info) t1 group byt1.base;结果:
总结
以上是生活随笔为你收集整理的Hive _偏门常用查询函数(一)附带实例(空字段赋值、 CASE WHEN、行转列)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Hive _分桶及抽样查询
- 下一篇: HQL中的substring