[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;
Leave a comment