#每天一点点,记录工作中实操作可行#
#oracle中以每10个步长作为一个分组#
当分组范围较大,有固定范围值时,可以用这个方法进行分组
当sum_rooms<30 时,归类为30以下;
当 sum_rooms >=200时,归类为200以上;
当sum_rooms在30到200之间时,将这些数据每10个作为一个分组
select Z2.ID,Z1.name
,case when sum_rooms <30 then '30以下'
when sum_rooms >=200 then '200以上'
else floor(sum_rooms/10)*10 || '-' || (floor(sum_rooms/10)+1)*10 end srn_type -- 每10步长分为一组
from z2
left join z1 on z2.id = z1.id
group by Z2.ID,Z1.name
,case when sum_rooms <30 then '30以下'
when sum_rooms >=200 then '200以上'
else floor(sum_rooms/10)*10 || '-' || (floor(sum_rooms/10)+1)*10 end
mysql 中这样写
,case when sum_rooms <30 then '30以下'
when sum_rooms >=200 then '200以上'
else concat(floor(sum_rooms/10)*10 ,'~',(floor(sum_rooms/10)+1)*10 ) end