본문으로 바로가기

이번 글에서는 ORA-30483: 윈도우 함수를 여기에 사용할 수 없습니다 에러 해결 방법에 대하여 알아보겠습니다.

 

ORA-30483: 윈도우 함수를 여기에 사용할 수 없습니다 

ORA-30483: "window  functions are not allowed here"

 

 

쿼리를 짜다가 아래와 같은 에러가 발생하였습니다.

 

 

예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.

아래의 쿼리는 샐러리(sal)를 가장 많이 받는 사원의 이름, 샐러리를 조회하려고 작성한 예제입니다.

 

위의 쿼리를 실행하니 ORA-30483: "window  functions are not allowed here" 에러가 발생하였습니다.

에러가 발생한 이유는 윈도우 함수는 WHERE절에서는 사용할 수 없습니다. 

여기서 윈도우 함수란, ANK, DENSE_RANK, ROW_NUMBER 등을 말합니다.

 

해결 방법

윈도우 함수를 직접 WHERE 절에 적을 수는 없으니 서브쿼리를 조건절에 걸면 됩니다.

 

서브 쿼리를 이용하여 쿼리를 다시 실행하도록 하겠습니다.

 

서브쿼리를 이용하니 쿼리가 잘 실행되는 것을 확인할 수 있습니다.

 

 

Reference

다중 행 서브쿼리의 개념과 예제 쿼리