一、先看sql示例
select u.group_num,u.area_name,--grouping(u.area_name),
sum(decode(u.bm,'联想 (Lenovo)A396',u.count,0)) aount1,
sum(decode(u.bm,'中兴 (ZTE)V5s',u.count,0)) aount2
from
(
select t5.group_num,t50.area_name,t1.brand_name || t1.model_name bm,sum(t1.order_amount) count
from activity_group t5
left join td_m_area_bss t50 on t5.area_code = t50.area_code
left join TI_WEG_CHNL_DETAIL t2 on t2.city_code = t50.user_area_code
left join TI_WEG_ORDER_DETAIL t1 on t1.chnl_id = t2.chnl_id and t1.brand_name || t1.model_name in ('联想 (Lenovo)A396','中兴 (ZTE)V5s')
where t5.activity_id = '138'
group by t5.group_num,t50.area_name,t1.brand_name,t1.model_name
)u
group by rollup(u.group_num,u.area_name)
having grouping_id(u.group_num,u.area_name)!=1
--having not (area_name is null and group_num is not null)
order by u.group_num
注: