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
上一篇 下一篇

猜你喜欢

热点阅读