[오라클 SQL] 오라클 OVER() 함수 사용방법


안녕하세요.

 

오늘은 오라클 OVER() 함수에 대해서 알아보려고 합니다.


OVER() 함수란?


-     ORDER BY, GROUP BY 서브쿼리를 개선하기 위한 함수

 

OVER() 함수는 위에서도 얘기 하였듯이, ORDER BY, GROUP BY 서브쿼리를 개선하기 위해 만든 함수입니다.

 

, ORDER BY, GROUP BY 구문을 OVER 함수로 대체할 수 있다는 건데요.


 

예제를 통해서 알아보겠습니다.

 

먼저 다음과 같은 SQL 문이 있습니다. SQL문은 학교(SCHOOL_NO) , 전체 학생 수를 구하는 SQL문 입니다.

 

1

2

3

4

5

6

SELECT SCHOOL_NO, COUNT(*) AS STUDENT_COUNT

FROM WIN.STUDENT

WHERE 1 = 1

GROUP BY SCHOOL_NO

ORDER BY SCHOOL_NO

 

Colored by Color Scripter

cs

 

위와 같이 GROUP BY, ORDER BY 구문을 이용하여 SQL문을 작성한 것을 볼 수 있습니다.


실행 결과



위와 같이 각 학교 별, 학생수가 계산돼서 조회된 것을 보실 수 있는데요.

 

이제 위의 쿼리에서 GROUP BY, ORDER BY 구문을 OVER() 함수로 대체해 보도록 하겠습니다.


OVER() 함수 SQL


1

2

3

4

 

SELECT DISTINCT SCHOOL_NO, COUNT(*) OVER(PARTITION BY SCHOOL_NO) AS STUDENT_COUNT

FROM WIN.STUDENT

WHERE 1 = 1

Colored by Color Scripter

cs


실행 결과



이렇게 GROUP BY, ORDER BY 구문을 사용했을 떄와 같이 같은 결과가 나오는 것을 확인할 수 있습니다.


참고로 COUNT() 함수 말고도, SUM(), MIN(), MAX(), AVG(), RANK() 등과 같이 다른 집계함수들과 함께 쓸 수도 있기 때문에 여러방면으로 응용 할 수 있습니다.

 

이로써, 간단히 OVER() 함수에 대해서 알아보았습니다.

 

감사합니다.^^


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY