新零售数仓DM层实现操作

1.按周统计

insert into xxxx.dm_sale 
with  dim_date as (
	select
		date_code,
		year_code,
		year_month,
		month_code ,
		day_month_num ,
		dim_date_id ,
		year_week_name_cn 
	from hive.bj59_yp_dwd_jiale.dim_date
),
t1 as (
	select 
		'2022-05-10' as  date_time,
		'week' as time_type,
		year_code ,
		null as year_month,
		null as month_code,
		null as day_month_num ,
		null as dim_date_id,
		year_week_name_cn ,
		
		-- 处理维度:
		case 
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 15  and  s.group_type = 'store'
				then 'store'
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 31  and  s.group_type = 'trade_area'
				then 'trade_area'
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 63  and  s.group_type = 'city'
				then 'city'
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 119  and  s.group_type = 'brand'
				then 'brand'
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 120  and  s.group_type = 'min_class'
				then 'min_class'
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 121  and  s.group_type = 'mid_class'
				then 'mid_class'
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 123  and  s.group_type = 'max_class'
				then 'max_class'
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 127  and  s.group_type = 'all'
				then 'all'
			else null
		end as group_type,
		s.city_id ,
	  	s.city_name ,
	  	s.trade_area_id ,
	  	s.trade_area_name,
	  	s.store_id,
	  	s.store_name ,
	  	s.brand_id,
	  	s.brand_name,
	  	s.max_class_id,
	  	s.max_class_name,
	  	s.mid_class_id,
	  	s.mid_class_name,
	  	s.min_class_id,
		s.min_class_name,
		
		-- 指标:  
			case 
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 15  and  s.group_type = 'store'
				then sum(s.sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 31  and  s.group_type = 'trade_area'
				then sum(s.sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 63  and  s.group_type = 'city'
				then sum(s.sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 119  and  s.group_type = 'brand'
				then sum(s.sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 120  and  s.group_type = 'min_class'
				then sum(s.sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 121  and  s.group_type = 'mid_class'
				then sum(s.sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 123  and  s.group_type = 'max_class'
				then sum(s.sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 127  and  s.group_type = 'all'
				then sum(s.sale_amt)
			else null
		end as sale_amt,
		case 
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 15  and  s.group_type = 'store'
				then sum(s.plat_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 31  and  s.group_type = 'trade_area'
				then sum(s.plat_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 63  and  s.group_type = 'city'
				then sum(s.plat_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 119  and  s.group_type = 'brand'
				then sum(s.plat_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 120  and  s.group_type = 'min_class'
				then sum(s.plat_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 121  and  s.group_type = 'mid_class'
				then sum(s.plat_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 123  and  s.group_type = 'max_class'
				then sum(s.plat_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 127  and  s.group_type = 'all'
				then sum(s.plat_amt)
			else null
		end as plat_amt,
		
		case 
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 15  and  s.group_type = 'store'
				then sum(s.deliver_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 31  and  s.group_type = 'trade_area'
				then sum(s.deliver_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 63  and  s.group_type = 'city'
				then sum(s.deliver_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 119  and  s.group_type = 'brand'
				then sum(s.deliver_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 120  and  s.group_type = 'min_class'
				then sum(s.deliver_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 121  and  s.group_type = 'mid_class'
				then sum(s.deliver_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 123  and  s.group_type = 'max_class'
				then sum(s.deliver_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 127  and  s.group_type = 'all'
				then sum(s.deliver_sale_amt)
			else null
		end as deliver_sale_amt,
		
		case 
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 15  and  s.group_type = 'store'
				then sum(s.mini_app_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 31  and  s.group_type = 'trade_area'
				then sum(s.mini_app_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 63  and  s.group_type = 'city'
				then sum(s.mini_app_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 119  and  s.group_type = 'brand'
				then sum(s.mini_app_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 120  and  s.group_type = 'min_class'
				then sum(s.mini_app_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 121  and  s.group_type = 'mid_class'
				then sum(s.mini_app_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 123  and  s.group_type = 'max_class'
				then sum(s.mini_app_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 127  and  s.group_type = 'all'
				then sum(s.mini_app_sale_amt)
			else null
		end as mini_app_sale_amt,
		
		case 
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 15  and  s.group_type = 'store'
				then sum(s.android_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 31  and  s.group_type = 'trade_area'
				then sum(s.android_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 63  and  s.group_type = 'city'
				then sum(s.android_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 119  and  s.group_type = 'brand'
				then sum(s.android_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 120  and  s.group_type = 'min_class'
				then sum(s.android_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 121  and  s.group_type = 'mid_class'
				then sum(s.android_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 123  and  s.group_type = 'max_class'
				then sum(s.android_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 127  and  s.group_type = 'all'
				then sum(s.android_sale_amt)
			else null
		end as android_sale_amt,
		
		case 
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 15  and  s.group_type = 'store'
				then sum(s.ios_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 31  and  s.group_type = 'trade_area'
				then sum(s.ios_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 63  and  s.group_type = 'city'
				then sum(s.ios_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 119  and  s.group_type = 'brand'
				then sum(s.ios_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 120  and  s.group_type = 'min_class'
				then sum(s.ios_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 121  and  s.group_type = 'mid_class'
				then sum(s.ios_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 123  and  s.group_type = 'max_class'
				then sum(s.ios_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 127  and  s.group_type = 'all'
				then sum(s.ios_sale_amt)
			else null
		end as ios_sale_amt,
		
		case 
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 15  and  s.group_type = 'store'
				then sum(s.pcweb_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 31  and  s.group_type = 'trade_area'
				then sum(s.pcweb_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 63  and  s.group_type = 'city'
				then sum(s.pcweb_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 119  and  s.group_type = 'brand'
				then sum(s.pcweb_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 120  and  s.group_type = 'min_class'
				then sum(s.pcweb_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 121  and  s.group_type = 'mid_class'
				then sum(s.pcweb_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 123  and  s.group_type = 'max_class'
				then sum(s.pcweb_sale_amt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 127  and  s.group_type = 'all'
				then sum(s.pcweb_sale_amt)
			else null
		end as pcweb_sale_amt,
		
		
		case 
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 15  and  s.group_type = 'store'
				then sum(s.order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 31  and  s.group_type = 'trade_area'
				then sum(s.order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 63  and  s.group_type = 'city'
				then sum(s.order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 119  and  s.group_type = 'brand'
				then sum(s.order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 120  and  s.group_type = 'min_class'
				then sum(s.order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 121  and  s.group_type = 'mid_class'
				then sum(s.order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 123  and  s.group_type = 'max_class'
				then sum(s.order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 127  and  s.group_type = 'all'
				then sum(s.order_cnt)
			else null
		end as order_cnt,
		
		case 
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 15  and  s.group_type = 'store'
				then sum(s.eva_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 31  and  s.group_type = 'trade_area'
				then sum(s.eva_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 63  and  s.group_type = 'city'
				then sum(s.eva_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 119  and  s.group_type = 'brand'
				then sum(s.eva_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 120  and  s.group_type = 'min_class'
				then sum(s.eva_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 121  and  s.group_type = 'mid_class'
				then sum(s.eva_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 123  and  s.group_type = 'max_class'
				then sum(s.eva_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 127  and  s.group_type = 'all'
				then sum(s.eva_order_cnt)
			else null
		end as eva_order_cnt,
		
		case 
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 15  and  s.group_type = 'store'
				then sum(s.bad_eva_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 31  and  s.group_type = 'trade_area'
				then sum(s.bad_eva_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 63  and  s.group_type = 'city'
				then sum(s.bad_eva_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 119  and  s.group_type = 'brand'
				then sum(s.bad_eva_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 120  and  s.group_type = 'min_class'
				then sum(s.bad_eva_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 121  and  s.group_type = 'mid_class'
				then sum(s.bad_eva_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 123  and  s.group_type = 'max_class'
				then sum(s.bad_eva_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 127  and  s.group_type = 'all'
				then sum(s.bad_eva_order_cnt)
			else null
		end as bad_eva_order_cnt,
		
		case 
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 15  and  s.group_type = 'store'
				then sum(s.deliver_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 31  and  s.group_type = 'trade_area'
				then sum(s.deliver_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 63  and  s.group_type = 'city'
				then sum(s.deliver_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 119  and  s.group_type = 'brand'
				then sum(s.deliver_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 120  and  s.group_type = 'min_class'
				then sum(s.deliver_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 121  and  s.group_type = 'mid_class'
				then sum(s.deliver_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 123  and  s.group_type = 'max_class'
				then sum(s.deliver_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 127  and  s.group_type = 'all'
				then sum(s.deliver_order_cnt)
			else null
		end as deliver_order_cnt,
		
		case 
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 15  and  s.group_type = 'store'
				then sum(s.refund_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.trade_area_id ,s.store_id,s.brand_id ,s.max_class_id ,s.mid_class_id ,s.min_class_id ) = 31  and  s.group_type = 'trade_area'
				then sum(s.refund_order_cnt)
			when grouping(d.year_week_name_cn,s.city_id ,s.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值