OVER 함수
- GROUP BY, ORDER BY를 이용한 서브쿼리를 개선하기 위해 나옴 함수
- COUNT(), MAX(), MIN(), SUM(), AVG(), RANK(), ROW_NUMBER() 등과 같은 집계함수나 분석함수와 함께 사용된다.
SELECT DEPT_NM, COUNT(*) FROM HRM_DEPT
이 쿼리를 실행하면 에러메세지가 나온다.
SELECT DEPT_NM, COUNT (*) FROM HRM_DEPT GROUP BY DEPT_NM
OVER 함수를 쓰지 않으면 GROUP BY를 이용하여 전체 행의 수를 확인할 수 있다.
SELECT DEPT_NM, COUNT (*) OVER () FROM HRM_DEPT
OVER 함수를 쓰면 GROUP BY를 이용하지 않아도 전체 행의 수를 구할 수 있다.
SELECT DEPT_NM, COUNT (DISTINCT DEPT_CD) OVER () FROM HRM_DEPT
부서이름과 중복되지 않는 부서코드를 가진 부서 행의 수를 반환
SELECT DEPT_NM, COUNT (*) OVER (PARTITION BY DEPT_CD) FROM HRM_DEPT
부서이름과 부서코드로 나눈 부서 행의 수를 반환
PARTITION BY 는 GROUP BY 같은 개념이라고 생각하면 된다.
COUNT(*) OVER() : 전체 행의 수 반환
COUNT(*) OVER(PARTITION BY 컬럼) : 컬럼 그룹으로 나누어 행의 수 반환
'IT' 카테고리의 다른 글
[오라클/ORACLE]TNS 설정 (0) | 2017.04.20 |
---|---|
[오라클/ORACLE]INSERT, UPDATE, DELETE 구문 (0) | 2017.04.19 |
[자바/JAVA]String, int 형변환 (0) | 2017.04.17 |
[이클립스/Eclipse]java was started but returned exit code=1 (0) | 2017.04.17 |
WAS서버 ,WEB서버 (0) | 2017.04.14 |