출발공항이 GMP 인 항공편만 예약 건수와 함께 보이려 한다. 다음 [… | [SQLD] SQL 개발자 기출유형 모의고사 4회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 4회
출발공항이 GMP 인 항공편만 예약 건수와 함께 보이려 한다. 다음 [결과]를 얻기 위해 ㉠에 들어갈 구문으로 옳은 것은?[항공편]
| 편명 | 출발공항 |
|---|---|
| KE101 | GMP |
| KE103 | GMP |
| OZ201 | ICN |
| LJ301 | GMP |
| TW401 | ICN |
[예약]
| 예약번호 | 편명 | 운임 |
|---|---|---|
| 1 | KE101 | 120 |
| 2 | KE101 | 95 |
| 3 | OZ201 | 300 |
| 4 | LJ301 | (null) |
| 5 | OZ201 | 280 |
SELECT F.편명, COUNT(R.예약번호) AS 예약수
FROM 항공편 F LEFT OUTER JOIN 예약 R
ON F.편명 = R.편명
( ㉠ )
GROUP BY F.편명
ORDER BY F.편명;[결과]
| 편명 | 예약수 |
|---|---|
| KE101 | 2 |
| KE103 | 0 |
| LJ301 | 1 |
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 두 행만 남는다.
오류나 개정된 내용이 보이면 알려주세요