你好呀,汪同学! 2022-12-20 16:37 采纳率: 82.1%
浏览 22
已结题

区间分布sql该怎么写才能使最终统计的各区间值和为100%

mysql中如何对区间进行补全?

clocount_dayspeed_rangerspeed_numnot_all
A2022/8/6[20, 30)117
A2022/8/6[10, 20)417
A2022/8/6[1, 10)1217
B2022/8/6[60, 70)261500
B2022/8/6[50, 60)931500
B2022/8/6[40, 50)1071500
B2022/8/6[30, 40)2931500
B2022/8/6[20, 30)3451500
B2022/8/6[10, 20)3521500
B2022/8/6[1, 10)2841500
C2022/8/6[90, 100)692925
C2022/8/6[80, 90)5682925
C2022/8/6[70, 80)5882925
C2022/8/6[60, 70)2072925
C2022/8/6[50, 60)2392925
C2022/8/6[40, 50)3592925
C2022/8/6[30, 40)3402925
C2022/8/6[20, 30)2072925
C2022/8/6[10, 20)1392925
C2022/8/6[1, 10)2092925

img

总区间为
[90, 100),[80, 90),[70, 80),[60, 70),[50, 60),[40, 50),[30, 40),[20, 30),[10, 20),[1, 10)
目前想计算A,B,C三个在各区间的占比情况。占比为 speed_num / not_all
为了能够让各区间的占比算出来和为100%,则在计算前要对A,B的区间进补全。speed_num补0,not_all补其对应区间。
如A,在[90, 100)没有,则其speed_num=0 not_all=17

sql该怎么写,才能是的各区间占比算出来为100%

  • 写回答

1条回答 默认 最新

  • AllenGd 大数据领域优质创作者 2022-12-20 17:33
    关注
    select clo,count_day,t1.speed_ranger,
    sum(case when t1.speed_ranger = t2.speed_ranger then speed_num else 0 end) speed_num,
    sum(case when t1.speed_ranger = t2.speed_ranger then not_all else 0 end) not_all,
    if(sum(case when t1.speed_ranger = t2.speed_ranger then not_all else 0 end)=0,0,sum(case when t1.speed_ranger = t2.speed_ranger then speed_num else 0 end) /sum(case when t1.speed_ranger = t2.speed_ranger then not_all else 0 end)) zb
    from (select distinct speed_ranger from speed_tab) t1
    left join speed_tab t2
    on 1=1
    group by clo,count_day,t1.speed_ranger
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月29日
  • 已采纳回答 12月21日
  • 创建了问题 12月20日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题