Hive常用函式 case when練習 一

2021-10-08 13:25:18 字數 1539 閱讀 2161

原始資料(姓名,部門,性別)

悟空	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...