Posted on 2011-05-13 17:01
哈希 閱讀(171)
評論(0) 編輯 收藏 所屬分類:
sql 總結
所用數(shù)據(jù):
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 按照名稱進行分區(qū),同時按照名稱進行合計
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
