문제
다음 중 <영화> 테이블에 대해 아래와 같은 결과를 표시하는 SQL문으로 옳은 것은?
| 영화명 | 감독 | 개봉년도 | 배급사 |
|---|---|---|---|
| 별빛 일기 | 김도윤 | 2021 | 가온 |
| 도시의 밤 | 이서진 | 2019 | 가온 |
| 잊혀진 계절 | 박하늘 | 2022 | 나래 |
| 푸른 바다 | 정유미 | 2020 | 나래 |
| 마지막 약속 | 한지훈 | 2018 | 다온 |
① select * from 영화 order by 배급사 desc, 개봉년도 asc; ② select * from 영화 order by 배급사 asc, 개봉년도 desc; ③ select * from 영화 order by 개봉년도 desc, 배급사 asc; ④ select * from 영화 order by 감독 asc, 개봉년도 desc;
정답
2번
해설
정답: 2. 결과는 배급사가 가온→나래→다온으로 오름차순 정렬되고, 같은 배급사 안에서는 개봉년도가 내림차순(2021→2019, 2022→2020)으로 정렬되어 있다. 따라서 order by 배급사 asc, 개봉년도 desc가 옳다.
오답 풀이
- 1번: 배급사 내림차순이면 다온이 먼저 와야 하므로 옳지 않다.
- 2번: 배급사 오름차순, 개봉년도 내림차순과 일치하므로 옳다.
- 3번: 개봉년도를 먼저 정렬하면 배급사가 섞이므로 옳지 않다.
- 4번: 감독 기준 정렬이라 결과 순서와 다르므로 옳지 않다.
보충 개념 ORDER BY에 여러 필드를 쓰면 앞쪽 필드를 우선 정렬한 뒤, 같은 값 안에서 다음 필드로 정렬한다. asc는 오름차순(기본), desc는 내림차순이다.