영화별 예매 건수를 다음 결과처럼 구하려 한다. ㉠에 들어갈 조건으로 … | [SQLD] SQL 개발자 기출유형 모의고사 9회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 9회
영화별 예매 건수를 다음 결과처럼 구하려 한다. ㉠에 들어갈 조건으로 옳은 것은?[영화]
| 영화번호 | 제목 |
|---|---|
| 1 | 파도 |
| 2 | 정원 |
| 3 | 추적 |
[예매]
| 예매번호 | 영화번호 |
|---|---|
| 11 | 1 |
| 12 | 1 |
| 13 | 3 |
| 14 | 1 |
| 15 | (null) |
SELECT M.제목,
(SELECT COUNT(*)
FROM 예매 R
WHERE ( ㉠ )) AS 건수
FROM 영화 M
ORDER BY M.영화번호;| 제목 | 건수 |
|---|---|
| 파도 | 3 |
| 정원 | 0 |
| 추적 | 1 |
1
M.영화번호 IN (1, 3)
2
영화번호 IS NOT NULL
3
R.영화번호 = M.영화번호
4
1 = 1
해설
바깥 영화 행마다 같은 영화의 예매만 세려면 스칼라 서브쿼리의 조건이 바깥 별칭 M 을 가리키는 상관 조건
R.영화번호 = M.영화번호여야 한다.예매가 없는 정원은 COUNT(*) 가 0 을 돌려 0 으로 나오고, 영화번호가 NULL 인 15번은 어느 영화에도 세지지 않는다.
- 한정자 없는 영화번호는 가장 가까운 R 의 열로 해석되어 NULL 이 아닌 예매 4건이 모든 영화에 세어진다.
- 1 = 1 은 상관 조건이 없어 모든 영화에 예매 5건이 그대로 세어진다.
- IN (1, 3) 은 파도·추적에 5, 정원에 0 을 주어 예매 건수와 다르다.
오류나 개정된 내용이 보이면 알려주세요