SQL - 문제 미리보기

문제 1695

medium
다음 쿼리의 실행 결과를 올바르게 예측한 것은? ```sql SELECT ProductName FROM Products WHERE Price > ALL (SELECT Price FROM Products WHERE CategoryID = 2); ```
A. CategoryID가 2인 상품들의 이름을 모두 출력
B. CategoryID가 2인 상품들보다 비싼 모든 상품의 이름을 출력
C. CategoryID가 2인 상품들 중 가장 비싼 상품보다 더 비싼 상품들의 이름을 출력
D. 쿼리 실행 오류가 발생함

정답: C

ALL 연산자의 동작 원리를 단계별로 분석: 1단계 - 서브쿼리 실행: ```sql SELECT Price FROM Products WHERE CategoryID = 2 ``` • CategoryID가 2인 상품들의 가격 목록 반환 • 예: [10, 22, 21.35, 25, 40] (카테고리 2 상품들의 가격) 2단계 - ALL 연산자 적용: ```sql WHERE Price > ALL (10, 22, 21.35, 25, 40) ``` • 메인 쿼리의 각 상품 가격이 서브쿼리의 모든 가격보다 커야 TRUE • 즉, 40(최댓값)보다도 커야 함 3단계 - 결과 해석: • CategoryID가 2인 상품들 중 **가장 비싼 상품(40)**보다 더 비싼 상품들만 선택 • ALL은 "모든 값보다 크다" = "최댓값보다 크다"와 동일 ALL 연산자의 핵심 개념: • `> ALL` : 모든 값보다 큼 = 최댓값보다 큼 • `< ALL` : 모든 값보다 작음 = 최솟값보다 작음 • `= ALL` : 모든 값과 같음 = 모든 값이 동일하고 그 값과 같음

💡 학습 팁

이 문제를 포함한 SQL 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.