SELECT 그룹별로 COUNT 가져오기 0 2 946

by 자라선 [SQL Query] [2018.11.22 15:16:14]


안녕하세요!

공부중 혼자서 머리굴려도 도저히 진입조차 못하고있어 질문드립니다.

테이블은 ORACLE의 SCOTT 테이블을 사용하였습니다.

 

SELECT    EMPNO, ENAME, DEPTNO, S.GRADE
FROM      EMP E , SALGRADE S
WHERE     E.SAL BETWEEN S.LOSAL AND S.HISAL

위와 같이 작성하게되면 각 파트별로 급여의등급과 부서과 조회됩니다.

하지만 제가 원하는 결과는 부서마다 급여등급 1부터 5까지의 인원수를 알고싶습니다. 또한 부서에서 인원이 없는 급여등급들도 ROW로 뽑아내고 싶습니다.

예) "10"부서에서 급여 1등급 인원수가 0명이여도 ROW로 0명으로 출력

감사합니다.

by 마농 [2018.11.22 15:38:54]
-- Partition Outer Join --
SELECT e.deptno
     , s.grade
     , COUNT(e.empno) cnt
  FROM salgrade s
  LEFT OUTER JOIN emp e
  PARTITION BY (e.deptno)
    ON e.sal BETWEEN s.losal AND s.hisal
 GROUP BY e.deptno, s.grade
 ORDER BY e.deptno, s.grade
;

 


by 자라선 [2018.11.22 15:45:20]

조인에 파티션 처음보네요 ;

감사합니다 좀더 공부해야겠어요!

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