计算累加差
需求描述
需求:计算EMP表里SAL字段的累计乘积值,这里按照SAL、EMPNO排序.
解决方法:通过SUM OVER()函数来完成,这里SAL要取反,即SAL的负数.
注: 数据库数据集SQL脚本详见如下链接地址
SQL代码
-- Sql Server、Oracle:
SELECT deptno,sal,empno,SUM(CASE WHEN RN=1 THEN SAL ELSE -sal END)OVER(PARTITION BY deptno ORDER BY sal,empno) Accu_Diff FROM
(
SELECT deptno,sal,empno,ROW_NUMBER()OVER(PARTITION BY deptno ORDER BY sal,empno)RN
FROM emp
)A
执行结果
Mysql:暂未实现.