문제
급여가 2000 이상인 사원 중 부서별 급여의 합계 금액이 높은 순으로 정렬하려고 할 때 아래 쿼리에서 고쳐야 할 부분은?
| EMP_ID | DEPT_NAME | SALARY |
|---|---|---|
| 101 | HR | 2500 |
| 102 | IT | 3000 |
| 103 | IT | 2200 |
| 104 | Sales | 1800 |
| 105 | Sales | 2200 |
| 106 | HR | 2000 |
<결과>
| DEPT_NAME | SUM(SALARY) |
|---|---|
| IT | 5200 |
| HR | 4500 |
| Sales | 4000 |
SQLSELECT DEPT_NAME, SUM(SALARY) -- (가) FROM EMP WHERE SALARY >= 2000 -- (나) GROUP BY DEPT_NAME -- (다) ORDER BY SUM(SALARY) -- (라)
① (가) ② (나) ③ (다) ④ (라)
정답
4번
해설
정답: 4. 합계 금액이 높은 순으로 정렬하려면 ORDER BY SUM(SALARY) DESC로 작성해야 한다.
오답 풀이
- 1번: SELECT 절의 부서명과 급여 합계는 적절하다.
- 2번: 급여 2000 이상 조건은 WHERE 절에 위치하는 것이 적절하다.
- 3번: 부서별 합계를 구하려면 GROUP BY DEPT_NAME이 필요하다.
- 4번: 높은 순 정렬이므로 DESC가 누락된 ORDER BY 부분을 고쳐야 한다.
보충 개념 ORDER BY의 기본 정렬은 오름차순이다. 큰 값부터 정렬하려면 DESC를 명시해야 한다.