문제
다음 쿼리의 결과로 옳은 것은?
| COL1 | COL2 |
|---|---|
| 1 | A |
| 2 | B |
| 3 | C |
| 4 | D |
| 1 | A |
| 2 | B |
| 3 | A |
SQLSELECT COUNT(ALL COL1) FROM TAB1 WHERE COL2='A'; SELECT COUNT(DISTINCT COL1) FROM TAB1;
① 2, 3 ② 3, 3 ③ 3, 4 ④ 4, 4
정답
3번
해설
정답: 3. COL2가 A인 행은 3건이고, COL1의 서로 다른 값은 1, 2, 3, 4로 4개이다.
오답 풀이
- 1번: 첫 번째 결과는 3이고 두 번째 결과는 4이므로 틀리다.
- 2번: DISTINCT COL1의 개수를 3으로 계산한 오류이다.
- 3번: COUNT(ALL COL1)=3, COUNT(DISTINCT COL1)=4로 옳다.
- 4번: COL2='A'인 행을 4건으로 잘못 계산했다.
보충 개념 COUNT(ALL 컬럼)은 NULL이 아닌 모든 값을 센다. COUNT(DISTINCT 컬럼)은 중복을 제거한 값의 개수를 센다.