문제
매출액이 높은 순서대로 직원별 총 매출액을 출력하려고 한다. 아래 SQL 에서 고쳐야 할 부분은?
| EMP_ID | AMOUNT |
|---|---|
| 101 | 3000 |
| 102 | 5000 |
| 101 | 2500 |
| 103 | 4000 |
| 102 | 1500 |
① (가) ② (나) ③ (다) ④ (라)
정답
4번
해설
정답: 4. 매출액이 높은 순서대로 정렬하려면 ORDER BY SUM(AMOUNT) DESC 처럼 내림차순을 명시해야 한다. ORDER BY 의 기본 정렬 방향은 ASC(오름차순) 이므로 DESC 를 빼면 매출 합계가 작은 직원부터 출력된다.
오답 풀이
- 1번: (가) SELECT 절은 직원 ID 와 매출 합계를 정확히 조회하고 있어 수정할 필요가 없다.
- 2번: (나) FROM 절의 테이블 지정은 문제 의도와 무관하다.
- 3번: (다) WHERE 절은 행 필터링 조건이며 정렬 방향과 관련이 없다.
- 4번: (라) ORDER BY 절에 DESC 가 누락되어 있으므로 ORDER BY SUM(AMOUNT) DESC 로 고쳐야 한다.
보충 개념 ORDER BY 의 기본값은 ASC(오름차순) 이다. '높은 순서', '큰 값부터' 같은 요구사항은 DESC 를 반드시 명시해야 한다. SELECT 절에서 부여한 별칭을 ORDER BY 에서 그대로 사용할 수도 있다 (예: SELECT SUM(AMOUNT) AS TOTAL … ORDER BY TOTAL DESC).