hive
2018-07-30 本文已影响16人
7ccc099f4608
一般来说,
group by
能解决很多统计类问题,但它返回的表,往往要做pivot
操作才好用。
select
count(1) as some_count
from
some_table
group by some_column
能得到
some_column some_count
a 1
b 2
然而,我们有时候或许更想得到:
count_a count_b
1 2
这个操作类似于Excel里的pivot
操作,然而很多sql并不支持。本文采用的是Stack Overflow[1]上的一个解决方案:
select
sum(case when some_column = 'a' then 1 else 0 end) as count_a,
sum(case when some_column = 'b' then 1 else 0 end) as count_b
from
some_table