다음 재고 테이블에 대해 ㉠~㉣을 실행할 때, 결과 값이 나머지 셋과 … | [SQLD] SQL 개발자 기출유형 모의고사 8회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 8회
다음 재고 테이블에 대해 ㉠~㉣을 실행할 때, 결과 값이 나머지 셋과 다른 것은?[재고]
| 품목코드 | 수량 |
|---|---|
| P1 | 10 |
| P2 | 20 |
| P3 | (null) |
| P4 | 30 |
| P5 | 0 |
| P6 | (null) |
㉠ SELECT AVG(수량) FROM 재고;
㉡ SELECT SUM(수량) / COUNT(수량) FROM 재고;
㉢ SELECT SUM(수량) / COUNT(*) FROM 재고;
㉣ SELECT SUM(수량) / COUNT(*)
FROM 재고
WHERE 수량 IS NOT NULL;1
㉢
2
㉡
3
㉣
4
㉠
해설
COUNT(*) 는 NULL 행까지 세므로 ㉢은 60 을 6 으로 나눠 10이 되고, 나머지는 모두 NULL 을 뺀 4행 기준이라 15다.
AVG 는 NULL 을 분자·분모에서 모두 제외하지만 0 은 값이라 분모에 포함한다.
- ㉠은 NULL 을 뺀 10·20·30·0 의 평균으로 15 다.
- ㉡은 COUNT(수량) 이 NULL 을 세지 않아 60/4=15 다.
- ㉣은 WHERE 로 NULL 행을 먼저 지워 COUNT(*) 가 4 가 되어 15 다.
오류나 개정된 내용이 보이면 알려주세요