다음 SQL 에 대한 설명으로 옳은 것은?SELECT P.승객명, P.… | [SQLD] SQL 개발자 기출유형 모의고사 4회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 4회
다음 SQL 에 대한 설명으로 옳은 것은?
SELECT P.승객명, P.마일리지
  FROM 승객 P
 WHERE P.마일리지 > (SELECT AVG(Q.마일리지)
                       FROM 승객 Q
                      WHERE Q.등급 = P.등급);
1
등급이 NULL 인 승객도 결과에 나온다
2
서브쿼리는 전체에서 한 번만 실행된다
3
바깥 행마다 등급별 평균을 다시 구한다
4
메인 쿼리에서 Q 의 열을 쓸 수 있다
해설

서브쿼리가 바깥 행의 P.등급 을 참조하는 상관 서브쿼리이므로, 바깥 행마다 같은 등급 승객의 평균을 다시 계산해 비교한다.

결과적으로 마일리지가 자기 등급 평균을 넘는 승객만 남고, 등급이 NULL 이면 Q.등급 = NULL 이 참이 되지 않아 평균이 NULL 이고 비교도 UNKNOWN 이 된다.

  • 바깥 값에 따라 결과가 달라지므로 한 번 실행으로 끝나지 않는다.
  • 등급이 NULL 인 승객은 평균이 NULL 이 되어 결과에서 빠진다.
  • 서브쿼리 안 별칭 Q 는 메인 쿼리에서 참조할 수 없다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 4회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기