PARTITION BY는 GROUP BY와 비슷하게 사용할 수 있지만 큰 차이가 있습니다.
GROUP BY는 집계 함수에 그 컬럼이 같은 행들을 하나로 합쳐버립니다. (행 개수가 줄어들 수 있습니다.)
PARTITION BY는 분석 함수에 그 컬럼이 같은 행들을 한 곳에 모아줍니다. 행 개수가 줄어들지는 않습니다.
SELECT
deptno,
COUNT(*) DEPT_COUNT
FROM
emp
GROUP BY
deptno;COUNT()에 GROUP BY를 이런 식으로 쓴다면
SELECT
empno,
deptno,
COUNT(*) OVER(PARTITION BY deptno) DEPT_COUNT
FROM
emp;COUNT() OVER()에는 PARTITION BY를 이렇게 쓸 수 있겠죠