hive中实现多个维度进行聚合

数据准备

方法1:使用grouping sets

select   province,city,area,sum(person_num)        person_num
from tmp.tmp_zb_leaarn 
group by  province,city,area
grouping sets((province,city,area),(province,city),(province),()
)
order by province,city,area

效果如图:

方法2:使用with rollup

select   province,city,area,sum(person_num)        person_num
from tmp.tmp_zb_leaarn 
group by  province,city,area with rollup
order by province,city,area

效果如图:

with rollup使用起来比grouping sets更为方便,但是并没有grouping sets灵活 ,并不能控制那些多维度

方法3:使用with cube[全维度的组合]

select   province,city,area,sum(person_num)        person_num
from tmp.tmp_zb_leaarn 
group by  province,city,area with cube
order by province,city,area

效果如下:

方法4:使用union all(下下策)

如上示例,使用4个select进行多个维度的聚合,最后进行union all


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部