使用SUM(...) OVER (ORDER BY ...)
解析函数:
SQL Fiddle
的Oracle 11g R2架构设置:
CREATE TABLE table_name (Subjects, Marks) AS
SELECT 'Maths 1', 68 FROM DUAL UNION ALL
SELECT 'Maths 2', 50 FROM DUAL UNION ALL
SELECT 'Maths 3', 60 FROM DUAL UNION ALL
SELECT 'Maths 4', 80 FROM DUAL;
查询1:
SELECT subjects,
marks,
SUM(marks) OVER (ORDER BY subjects) AS add_marks,
100 * SUM(marks) OVER (ORDER BY subjects)/SUM (MARKS) OVER() AS "%marks"
FROM table_name
Results:
| SUBJECTS | MARKS | ADD_MARKS | %marks |
|----------|-------|-----------|--------------------|
| Maths 1 | 68 | 68 | 26.356589147286822 |
| Maths 2 | 50 | 118 | 45.736434108527135 |
| Maths 3 | 60 | 178 | 68.9922480620155 |
| Maths 4 | 80 | 258 | 100 |
来源
2017-10-04 08:32:40
MT0
不清楚可言,做你想做的事,你想除了什么什么什么? –
@CyrilleMODIANO OP正在寻找'marks'列的累计总和。 – MT0