Pav*_*ana 2 sql oracle oracle11g
我有一张桌子:
Emp_id Emp_Name Department Score
123 Raju D1 300
124 Ravi D2 400
125 Annie D3 600
126 Ajay D4 200
127 Amey D5 500
128 Akil D6 100
Run Code Online (Sandbox Code Playgroud)
我需要输出为
所以输出应该是:
700
1000
800
700
600
Run Code Online (Sandbox Code Playgroud)
我需要通过 SQL 查询而不是过程或其他东西的输出。
使用从当前行到下一行的滑动窗口 ( ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) 的分析函数可以很容易地做到这一点:
SELECT Emp_id, Emp_Name, Department, Score, sum(Score)
OVER (ORDER BY Emp_id ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) sum
FROM score;
Run Code Online (Sandbox Code Playgroud)
对数据执行此查询时,结果如下:
123 Raju D1 300 700
124 Ravi D2 400 1000
125 Annie D3 600 800
126 Ajay D4 200 700
127 Amey D5 500 600
128 Akil D6 100 100
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅数据库 SQL 语言参考、分析函数。