zoukankan      html  css  js  c++  java
  • Oracle-累加功能,累加百分比

    最近做数据分析,需要用到累加功能,发现强大的oracle还真有,用over(order by field)

    例子:

    数据表中最后一列就是累加的效果

    (1)累加sql:

    select t.acc_pedal_pos,count(*) num,sum(count(*)) over(order by t.acc_pedal_pos) accu_sum from  GT1117CARDATA t where t.acc_pedal_pos>0 group by t.acc_pedal_pos  order by t.acc_pedal_pos   

    #(自己这里加个感慨:感觉Oracle还有很多隐藏功能,比如这个sum()+over()用法,很神奇,我在sql数据库中也遇到了类似问题,用的是定义变量+case when用法,可以去我的SQL文章里去找一下,也有记录,就是不知道,是不是SQL也有类似于Oracle的sum+over快捷用法)

    (2)根据累计求和,进一步求累计值占总和的百分比sql:

    select t1.*,round(t1.accu_sum/t2.allsum*100,2)||'%' from (select t.acc_pedal_pos,
           count(*) num,
           sum(count(*)) over(order by t.acc_pedal_pos) accu_sum
      from GT1117CARDATA t
     where t.acc_pedal_pos > 0
     group by t.acc_pedal_pos
     order by t.acc_pedal_pos)t1,(select count(acc_pedal_pos) allsum from GT1117CARDATA where acc_pedal_pos>0) t2

    以上的内容是参考了:https://www.cnblogs.com/yuwenfeng/p/4235632.html

    下边上个例子——不计算累计,直接应用了上边的第(2)步,计算占整体比:

    结果:

     脚本:占比=t1是统计专区的线索数量(利用了专区列,count(*)+group by 专区) /  t2是不区分专区,进行整体的线索数量统计(利用了count(*))

     

     

     

     

  • 相关阅读:
    如何查看MySQL的当前存储引擎?
    转载mysql数据库配置优化
    redis教程
    基于 Android APP 安全测试流程
    移动APP安全测试
    自动化测试用例如何进行参数化
    分享一波免费的PPT模板下载网站
    UI自动化-滑块验证码识别 java版本
    安全测试博客汇总
    妙手回春——GRUB系统引导器恢复指南
  • 原文地址:https://www.cnblogs.com/Formulate0303/p/12034164.html
Copyright © 2011-2022 走看看