분석함수 쿼리 질문 0 3 1,915

by 김명섭 [2006.11.01 11:45:37]


sql>conn hr/hr

 

sql> SELECT department_id, last_name,salary, SUM(salary) OVER (PARTITION BY department_id) sum_sal
FROM employees;

/

DEPARTMENT_ID  LAST_NAME     SALARY      SUM_SAL
------------- ------------------ ---------- ---------------
     10 Whalen          4400      4400
     20 Hartstein        13000      19000
     20 Fay           6000      19000
     30 Raphaely        11000      24900
     30 Khoo           3100      24900
     30 Baida          2900      24900
     30 Colmenares        2500      24900
     30 Himuro          2600      24900
     30 Tobias          2800      24900

..............................

 

쿼리 결과는 department_id별 임금합계입니다.

그런데 보기 좋게하기 위해서 epartment_id 사이에 빈 row를 추가하고 싶습니다.

DEPARTMENT_ID  LAST_NAME     SALARY      SUM_SAL
------------- ------------------ ---------- ---------------
     10 Whalen          4400      4400

 

     20 Hartstein        13000      19000
     20 Fay           6000      19000
 

     30 Raphaely        11000      24900
     30 Khoo           3100      24900
.............

 

이렇게 하고 싶다는 얘기죠..

방법이 없을까요?

 

by 마농 [2006.11.01 00:00:00]
SELECT department_id, last_name,salary,
SUM(salary) OVER (PARTITION BY department_id) sum_sal
FROM employees
UNION
SELECT department_id, '', TO_NUMBER(''), TO_NUMBER('')
FROM employees

by ocp한달 [2006.11.01 00:00:00]
우왓...이렇게 간단한 것을...

by 쏘쿨 [2006.11.01 00:00:00]
rollup 을 사용하는 방법도 있습니다.

SELECT NVL2 (ename, deptno, NULL) deptno
, ename
, sal
, NVL2 (ename, SUM (sal) OVER (PARTITION BY deptno), NULL) sum_sal
FROM emp
GROUP BY deptno
, ROLLUP ((ename, sal))


http://www.soqool.com
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입