[SQL] 076. 서브 쿼리 사용하기6

Updated:

초보자를 위한 SQL 200제 교재를 토대로 공부한 내용입니다.

오라클 SQL을 기반으로 합니다.

실습에 사용한 테이블은 정보문화사 홈페이지에서 받을 수 있습니다.


[예시]

서브 쿼리는 GROUP BY절을 제외한 모든 절에서 사용 가능하다.

여기선 FROM절에 서브 쿼리를 사용한다.

다음 예시는 서브 쿼리에 분석 함수 RANK() OVER를 사용 후 WHERE 절에 조건으로 사용한다.

-- FROM 서브 쿼리
SELECT K.ENAME, K.SAL, K.순위
FROM (SELECT ENAME, SAL, RANK() OVER (ORDER BY SAL DESC) AS 순위
      FROM EMP) K
WHERE K.순위 = 1;

[결과]

ENAME SAL 순위
KING 5000 1

만약 다음과 같이 작성한다면 오류가 발생한다.

WHERE절에서는 집계 함수, 분석 함수 등을 사용 할 수 없다.

-- 다음과 같이 작성시 오류
-- WHERE절에서는 분석 함수를 사용할 수 없음
SELECT ENAME, SAL, RANK() OVER (ORDER BY SAL DESC) AS 순위
FROM EMP
WHERE RANK() OVER (ORDER BY SAL DESC) AS 순위 = 1;

Tags:

Categories:

Updated:

Leave a comment