目录
Hive空字段赋值
1)函数说明
NVL:给值为NULL的数据赋值,它的格式是NVL( value,default_value)。它的功能是如果value为NULL,则NVL函数返回default_value的值,否则返回value的值,如果两个参数都为NULL ,则返回NULL。
2)数据准备:采用员工表
3)查询:如果员工的comm为NULL,则用-1代替
hive (mydb)> select comm,nvl(comm, -1) from emp;

4)查询:如果员工的comm为NULL,则用领导id代替
hive (mydb)> select comm, nvl(comm,mgr) from emp;

CASE WHEN THEN ELSE END
1)数据准备
name dept_id sex
悟空 A 男
大海 A 男
宋宋 B 男
小红 A 女
婷姐 B 女
婷婷 B 女
2)需求
求出不同部门男女各多少人。结果如下:
dept_Id 男 女
A 2 1
B 1 2
3)创建hive表并导入数据
create table emp_sex(
name string,
dept_id string,
sex string)
row format delimited fields terminated by "\t";
load data local inpath '/home/hadoop/data/emp_sex.txt' into table emp_sex;
4)按需求查询数据
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 by
dept_id;
