sum()over()


所用数据:
SELECT a.deptno, a.employename, a.salary
FROM t_salary a

000001 李可 1000
000001 李强 2000
000001 杨彦军 4000
000002 童家道 3000
000002 姜文 3000
000002 罗文 3000
000003 窨嫡 3000
000003 童家道 3000
000003 童家道 3000
000004 于名 4000

使用代码:

SELECT A.deptno, A.employename,A.salary,
--1 按照名称进行分区,同时按照名称进行合计
SUM(A.salary)OVER(PARTITION BY A.employename) AS SUM_INC_ONLY,
--2 按照名称进行累计
SUM(A.salary)OVER(ORDER BY A.employename) AS SUM_INC,
--3 和 1 效果相同
SUM(A.salary)OVER(PARTITION BY A.employename ORDER BY A.employename) AS SUM_INC_NAME,
--4 按照部门分组,部门内进行合计。名称相同时进行累计
SUM(A.salary)OVER(PARTITION BY A.deptno ORDER BY A.employename) AS SUM_INC_DEP,
--5 按照部门,名称分组,部门名称相同时进行合计
SUM(A.salary)OVER(PARTITION BY A.deptno,A.employename ) AS SUM_INC_DEP_NAM
FROM t_salary A


所得结果:
DEPTNO EMPLOYENAME SALARY SUM_INC_ONLY SUM_INC SUM_INC_NAME SUM_INC_DEP SUM_INC_DEP_NAM
000002 姜文 3000 3000 3000 3000 3000 3000
000001 李可 1000 1000 4000 1000 1000 1000
000001 李强 2000 2000 6000 2000 3000 2000
000002 罗文 3000 3000 9000 3000 6000 3000
000002 童家道 3000 9000 18000 9000 9000 3000
000003 童家道 3000 9000 18000 9000 6000 6000
000003 童家道 3000 9000 18000 9000 6000 6000
000001 杨彦军 4000 4000 22000 4000 7000 4000
000004 于名 4000 4000 26000 4000 4000 4000
000003 窨嫡 3000 3000 29000 3000 9000 3000


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值