hive中rollup、cube使用方法

业务场景:

        一张门店表dim_mty_store ,三个字段分别为 store_code(门店)、director_code(主任)、manager_code(大区),级别从小到大:门店 < 主任 < 大区。

要根据门店、主任、大区这三个粒度分别统计门店数量,最笨的办法是三次group by 然后union all到一起,代码如下:

-- 1. 门店
select
    manager_code,
    director_code,
	store_code,
    count(store_code) as cnt
from dim_mty_store
group by 
    manager_code,
    director_code,
    store_code
	
union all
-- 2. 主任
select
    manager_code,
    director_code,
	null as store_code,
    count(store_code) as cnt
from dim_mty_store
group by 
    manager_code,
    director_code
	
union all
-- 3. 大区
select
    manager_code,
    null as director_code,
	null as store_code,
    count(store_code) as cnt 
from dim_mty_store
group by 
    manager_code
;

相关的快捷方法如下:

1. cube

功能:按照 所有字段组合的可能组合 分组u

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值