Hive_CASE WHEN

数据准备

name

dept_id

sex

悟空

A

大海

A

宋宋

B

 

 

凤姐

A

婷姐

B

婷婷

B

需求

求出不同部门男女各多少人。结果如下: 

A     2       1
B     1       2

创建本地emp_sex.txt,导入数据

[atguigu@hadoop102 datas]$ vi emp_sex.txt
悟空    A    男
大海    A    男
宋宋    B    男
凤姐    A    女
婷姐    B    女
婷婷    B    女

创建hive表并导入数据

create table emp_sex(
name string, 
dept_id string, 
sex string) 
row format delimited fields terminated by "\t";
load data local inpath '/opt/module/datas/emp_sex.txt' into table emp_sex;

按需求查询数据

select 
    dept_id
    sum(case sex when sex='男' then 1 else 0 end) man_count
    sum(case sex when sex='女' then 1 else 0 end) women_count
from 
    emp_sex
group by
    dept_id;

 

posted @ 2019-11-05 23:14  tunan96  阅读(573)  评论(0编辑  收藏  举报