문제
[평균성적] 테이블에서 '평균' 필드 값이 90 이상인 학생들을 검색하여 '학년' 필드를 기준으로 내림차순, '반' 필드를 기준으로 오름차순 정렬하여 표시하고자 한다. 다음 중 아래 SQL문의 각 괄호 안에 넣을 예약어로 옳은 것은?
① (ㄱ) GROUP BY (ㄴ) DESC (ㄷ) ASC ② (ㄱ) GROUP BY (ㄴ) ASC (ㄷ) DESC ③ (ㄱ) ORDER BY (ㄴ) DESC (ㄷ) ASC ④ (ㄱ) ORDER BY (ㄴ) ASC (ㄷ) DESC
정답
3번
해설
정답: 3. 정렬에는 ORDER BY를 쓴다. 학년은 내림차순(DESC), 반은 오름차순(ASC)이므로 (ㄱ)ORDER BY, (ㄴ)DESC, (ㄷ)ASC가 옳다.
오답 풀이
- 1번: GROUP BY는 그룹화 구문이라 정렬에 쓸 수 없으므로 (ㄱ)이 옳지 않다.
- 2번: GROUP BY가 잘못이고 학년 ASC도 내림차순 요건과 어긋난다.
- 3번: ORDER BY 학년 DESC, 반 ASC로 요건을 정확히 만족하므로 옳다.
- 4번: 학년 ASC는 내림차순이 아니므로 옳지 않다.
보충 개념 ORDER BY 뒤에 여러 필드를 쉼표로 나열하면 앞 필드 우선으로 정렬한다. 오름차순은 ASC(생략 가능), 내림차순은 DESC이다.