oracle mysql 中以每10个步长作为一个分组

本文介绍了一种在Oracle及MySQL数据库中使用CASE语句结合FLOOR函数进行数据分组的技巧,尤其适用于数据范围较大且有固定间隔的情况。通过具体SQL语句示例,展示了如何将数据按每10个单位进行分组,并归类于特定区间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#每天一点点,记录工作中实操作可行#
#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  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值