select data_class,year_,month_,item_type,item_type_F,area_1_channel,area_2_channel_F,sale_type_class, sum(销量) as 销量,sum(实际销量) as 实际销量,sum(收入) as 收入,sum(实际收入) as 实际收入, sum(毛利额) as 毛利额,sum(实际毛利额) as 实际毛利额from(select data_class,year_,month_,item_type,item_type_F,area_1_channel,area_2_channel,area_2_channel_F,sale_type_class, case when data_class='${数据类型1}' then qty else 0 end as 销量, case when data_class='${数据类型2}' then qty else 0 end as 实际销量, case when data_class='${数据类型1}' then rev else 0 end as 收入, case when data_class='${数据类型2}' then rev else 0 end as 实际收入, case when data_class='${数据类型1}' then gp else 0 end as 毛利额, case when data_class='${数据类型2}' then gp else 0 end as 实际毛利额from (select data_class,year_,month_,item_type,item_type as item_type_F,area_1_channel,area_2_channel,area_2_channel as area_2_channel_F,sale_type_class,qty,rev,gpfrom O_IFS_UNION_DUAN2DUANunion allselect data_class,year_,month_,item_type,'CBG_OBG' as item_type_F,area_1_channel,area_2_channel,'total' as area_2_channel_F,sale_type_class,qty,rev,gp from O_IFS_UNION_DUAN2DUAN) awhere data_class in ('${数据类型1}','${数据类型2}') and year_='${年}' and month_ in ('${月}' )and 1=1 ${if(项目类别='CBG_OBG',"AND item_type_F='CBG_OBG'", if(len(二级渠道_国家)==0,"AND item_type_F='"+项目类别+"' and area_1_channel = '"+一级渠道_区域+"' ", "AND item_type_F='"+项目类别+"' and area_1_channel = '"+一级渠道_区域+"'and area_2_channel_F ='"+二级渠道_国家+"'") )}) Agroup by data_class,year_,month_,item_type,item_type_F,area_1_channel,area_2_channel_F,sale_type_class以上是sql,当用户选择data_class参数时,如果选择了CBG或者OBG是,group by需要对area_1_channel,area_2_channel_F这两个字段进行分组,如果选择CBG_OBG则意味着选择的是所有数据,则不需要对后面两个下级字段进行分组,请问哪位大佬有好的实现办法