vi emp.tsv
name gender job
柳岩 女 班主任
唐嫣 女 讲师
金莲 女 班主任
大郎 男 讲师
小庆 男 讲师
武松 男 班主任
-- 获取如下结果
女,班主任 柳岩|金莲
女,讲师 唐嫣
男,班主任 武松
男,讲师 大郎|小庆
create table t_emp
(
name string,
gender string,
job string
) row format delimited fields terminated by "\t";
load data local inpath '/root/emp.tsv' into table t_emp
查询
-- 将gender和job合并为一列
select concat_ws(',', gender, job) as gender_job, name
from t_emp;
-- 得出结果
with t1 as (select concat_ws(',', gender, job) as gender_job, name
from t_emp)
select t1.gender_job, concat_ws('|', collect_list(name))
from t1
group by t1.gender_job;
求每种工作每种性别各有多少人,分别有谁,获取如下结果
select job,
count(*) as total,
sum(case gender when '男' then 1 else 0 end) as man,
sum(case gender when '女' then 1 else 0 end) as woman,
concat_ws('|', collect_list(name)) as names
from t_emp
group by job;