출발공항이 GMP 인 항공편만 예약 건수와 함께 보이려 한다. 다음 [… | [SQLD] SQL 개발자 기출유형 모의고사 4회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 4회
출발공항이 GMP 인 항공편만 예약 건수와 함께 보이려 한다. 다음 [결과]를 얻기 위해 ㉠에 들어갈 구문으로 옳은 것은?

[항공편]

편명출발공항
KE101GMP
KE103GMP
OZ201ICN
LJ301GMP
TW401ICN

[예약]

예약번호편명운임
1KE101120
2KE10195
3OZ201300
4LJ301(null)
5OZ201280
SELECT F.편명, COUNT(R.예약번호) AS 예약수
  FROM 항공편 F LEFT OUTER JOIN 예약 R
    ON F.편명 = R.편명
( ㉠ )
 GROUP BY F.편명
 ORDER BY F.편명;

[결과]

편명예약수
KE1012
KE1030
LJ3011
1
AND F.출발공항 = 'GMP'
2
WHERE R.운임 IS NOT NULL
3
AND R.운임 IS NOT NULL
4
WHERE F.출발공항 = 'GMP'
해설

기준 테이블인 항공편의 행을 거르려면 조건을 WHERE 절에 두어야 하며, 그러면 GMP 출발 3개 편만 남고 예약이 없는 KE103 도 예약수 0으로 나온다.

외부 조인의 ON 절에 둔 조건은 매칭 여부만 정할 뿐 왼쪽 행을 지우지 않는다. LJ301 은 운임이 NULL 이어도 예약번호가 있어 1로 센다.

  • ON 절에 출발공항 조건을 두면 ICN 편도 예약수 0인 행으로 남아 5행이 된다.
  • ON 절에 운임 조건을 두면 5개 편이 모두 남고 LJ301 의 예약수가 0이 된다.
  • WHERE 절에 운임 조건을 두면 예약이 있는 KE101·OZ201 두 행만 남는다.

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

이어서 풀어보기

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