다음 [직원] 테이블에 SQL을 실행했을 때 A, B, C, D 값을 … | [SQLD] SQL 개발자 기출유형 모의고사 1회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 1회
다음 [직원] 테이블에 SQL을 실행했을 때 A, B, C, D 값을 순서대로 나열한 것은?[직원]
| 사번 | 이름 | 급여 | 수당 |
|---|---|---|---|
| 1 | 윤서 | 300 | 60 |
| 2 | 도윤 | 250 | (null) |
| 3 | 하준 | 400 | 0 |
| 4 | 시우 | 350 | (null) |
| 5 | 지호 | 200 | 30 |
SELECT COUNT(*) AS A, COUNT(수당) AS B, AVG(수당) AS C,
SUM(급여 + 수당) AS D
FROM 직원;1
5, 3, 18, 1590
2
5, 5, 18, 990
3
3, 3, 30, 990
4
5, 3, 30, 990
해설
COUNT(수당)·AVG(수당)는 NULL을 제외하고 계산하고, 급여+수당처럼 NULL이 섞인 산술 연산은 결과가 NULL이 되어 SUM에서 빠진다.
A는 전체 5행, B는 0을 포함해 수당이 있는 3행, C는 (60+0+30)/3=30, D는 360+400+230=990이다.
- 평균 18은 NULL을 0으로 보고 5행으로 나눈 값이다.
- 1590은 NULL을 0으로 본 SUM(급여)+SUM(수당)의 값이다.
- COUNT(*)는 NULL 여부와 관계없이 모든 행을 세므로 3이 아니다.
오류나 개정된 내용이 보이면 알려주세요