用分析函数 统计某商店的营业额。
date sale
1 20
2 15
3 14
4 18
5 30
规则:按天统计:每天都统计前面几天的总额
得到的结果:
DATE SALE SUM
----- -------- ------
1 20 20 --1天
2 15 35 --1天+2天
3 14 49 --1天+2天+3天
4 18 67 .
5 30 97
sql语句:
[b]select s_date,sal ,sum(sal)over(order by to_number(s_date) desc range between 0 preceding and 1 following)
from t3 order by s_date [/b] .
主要解释一下range between 0 preceding and 1 following 这句话得意思:
以第二条记录为例:n=2 那么上面这句话的作用是
n=2 的sum(sal)=sum(n(2-1))<=n<=sum(n(2-0))=20+15=35
以此类推:
n=3 sum(sql_=sum(n(3-1))<=n<=sum(n(3-0))=35+14=39
.......
即可推出结果
date sale
1 20
2 15
3 14
4 18
5 30
规则:按天统计:每天都统计前面几天的总额
得到的结果:
DATE SALE SUM
----- -------- ------
1 20 20 --1天
2 15 35 --1天+2天
3 14 49 --1天+2天+3天
4 18 67 .
5 30 97
sql语句:
[b]select s_date,sal ,sum(sal)over(order by to_number(s_date) desc range between 0 preceding and 1 following)
from t3 order by s_date [/b] .
主要解释一下range between 0 preceding and 1 following 这句话得意思:
以第二条记录为例:n=2 那么上面这句话的作用是
n=2 的sum(sal)=sum(n(2-1))<=n<=sum(n(2-0))=20+15=35
以此类推:
n=3 sum(sql_=sum(n(3-1))<=n<=sum(n(3-0))=35+14=39
.......
即可推出结果