加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle实现累加,累计百分比计算

发布时间:2020-12-12 14:38:22 所属栏目:百科 来源:网络整理
导读:这几天一直在搞报表,发现Oracle真的很强大,需要用到累加功能,发现强大的oracle还真有,用over(order by field)解决的 例子: 数据表中最后一列就是累加的效果 累加sql: select substr(hn.fd_sjsxsj_time,1,7) 日期, sum(hn.fd_sh_workload) 工作量, sum(s

这几天一直在搞报表,发现Oracle真的很强大,需要用到累加功能,发现强大的oracle还真有,用over(order by field)解决的

例子:

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

累加sql:

select substr(hn.fd_sjsxsj_time,1,7) 日期,

sum(hn.fd_sh_workload) 工作量,

sum(sum(hn.fd_sh_workload)) over(order by substr(hn.fd_sjsxsj_time,7)) 累加

from tjstat.his_need hn

where substr(hn.fd_sjsxsj_time,4) = '2017'

group by substr(hn.fd_sjsxsj_time,7)

order by substr(hn.fd_sjsxsj_time,7);

趁热打铁,根据累计求和,进一步求占总和的百分比

例子:

?sql:

思路:计算累计百分比,先求列和,然后嵌套求百分比

select t1.*,round(t1.accu_sum/t2.allsum*100,2)||'%' from (select substr(hn.fd_sjsxsj_time,

sum(hn.fd_sh_workload) 工作量,

sum(sum(hn.fd_sh_workload)) over(order by substr(hn.fd_sjsxsj_time,7)) accu_sum

from tjstat.his_need hn

where substr(hn.fd_sjsxsj_time,7))t1,(select sum(hn.fd_sh_workload) allsum from tjstat.his_need hn where substr(hn.fd_sjsxsj_time,4) = '2017') t2

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读