原始資料(姓名,部門,性別)
悟空 a 男
娜娜 a 男
宋宋 b 男
鳳姐 a 女
熱巴 b 女
慧慧 b 女
建表,匯入資料
create
table tb_case(
name string ,
dname string ,
gender string
)row format delimited fields
terminated
by"\t"
;load
data
local inpath "/doit16/case.txt"
into
table tb_case ;
需求:得到如下結果
dname 男 女
a 2
1b 1
2
解決:
按照部門分組 group by dname, 再組內做判斷, 如果gender == 男,就加1計數,統計組內男性個數, 這個可以命名為m作為乙個新字段, 同樣也可以用同樣的方式統計組內女性的個數
select
dname ,
sum(
if(gender=
='男',1
,0)) m,
sum(
if(gender=
='女',1
,0)) f
from
tb_case
group
by dname
也可以是用case when 方式統計男女的個數
方式一;
select
dname,
sum(
case gender when
'男'then
1else
0end
) m,
sum(
case gender when
'女'then
1else
0end
) f
from
tb_case
group
by dname
方式二:
方式二
select
dname ,
sum(
case
when gender =
='男'
then
1else
0end
)as m ,
sum(
case
when gender =
='女'
then
1else
0end
)as f
from
tb_case
group
by dname
;
Hive常用函式
if判斷 select if 1 1,yes no 返回yes 語法 case expression when condition1 then result1 when condition2 then result2 else result end 例子 case a when 1 then one...
hive常用函式
hive常用函式 1 檢視函式用法 desc function 函式名 desc function extended 函式名 2 獲取array陣列長度 size函式 select size collect list field from table select size split hello ...
Hive常用函式
常用日期函式 unix timestamp 返回當前或指定時間的時間戳 from unixtime 將時間戳轉為日期格式 current date 當前日期 current timestamp 當前的日期加時間 to date 抽取日期部分 year 獲取年 month 獲取月 day 獲取日 ho...