Проблема
Просмотр Аналитическая функция SUM in Oracle Base и запуск SQL, ожидая, что SUM добавит зарплату по одной строке за раз.
SELECT
deptno,
ename,
sal,
SUM(sal)
OVER (
PARTITION BY deptno
ORDER BY sal
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
)
AS RUNNING_TOTAL_IN_DEPT
FROM
emp
ORDER BY deptno, sal
;
Однако для строки с одинаковым значением зарплаты добавляется промежуточный итог строк с одинаковым значением зарплаты.
DEPTNO ENAME SAL RUNNING_TOTAL_IN_DEPT
20 SMITH 800 800
20 ADAMS 1100 1900
20 JONES 2975 4875
20 SCOTT 3000 10875 <--- Why not 7875? How to make this to 7875?
20 FORD 3000 10875
30 JAMES 950 950
30 MARTIN 1250 3450 <--- Why not 2200?
30 WARD 1250 3450
30 TURNER 1500 4950
30 ALLEN 1600 6550
Вопрос
Пожалуйста, объясните этоповедение и как добавить сумму по одной строке за раз, даже если есть несколько строк с одинаковым значением зарплаты.