sqlserver关于累计分类问题

如图所示,要根据累计的重量去进行分类,当累计到70时又开始重新累计,且分为一类,以此类推,应该怎么写语句企业微信截图_1637720764745.png

lxy2 发布于 2021-11-24 10:27
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
lxy2Lv6中级互助
发布于2021-12-8 17:13

使用sql  while 循环

最佳回答
0
杨朝健Lv5中级互助
发布于2021-11-24 10:51

累计/70取整

  • lxy2 lxy2(提问者) 这样不对,这样得到的实际值一共超过了70的
    2021-11-24 14:37 
最佳回答
0
Moki_minLv5初级互助
发布于2021-11-24 11:00(编辑于 2021-11-24 17:25)

第一步:总累计毛重/70,向上取整作为分组序号

第二步:在第一步的基础上,根据分组序号,通过sum() over(partition by 分组序号 order by  总累计毛重)计算分组后的累计

  • lxy2 lxy2(提问者) 不对,这样得到的分组实际超过了70了
    2021-11-24 14:37 
  • Moki_min Moki_min 回复 lxy2(提问者) 嗯,有小数确实有偏差,如果7.11的值是固定的话,那么强制以9个7.11为一组,用ceil(row_number()/9)分组;如果值不固定,那确实有点难整; 有一个取巧的做法就是,做一个辅助表,按70分区间,先计算出每一个区间的最大值最小值,然后累计值在这个区间就分为一组,这样肯定不超啦
    2021-11-24 15:34 
  • lxy2 lxy2(提问者) 回复 Moki_min 这不是和直接/70一样的嘛,比如第二个区间是70-140,那分的区间也不对呀,实际数据超过70了
    2021-11-24 16:20 
  • 2关注人数
  • 470浏览人数
  • 最后回答于:2021-12-8 17:13
    请选择关闭问题的原因
    确定 取消
    返回顶部