학습용 기출·복원자료 분류 확인SQLD · 2024년 54회 SQL 기본 및 활용 · 18번
SQL 의 결과가 다른 것은? (Oralce 에 한함)?
1
SELECT COL1,COL2,COL3 FROM TAB WHERE COL1 < 5
오답 이유‘SELECT COL1,COL2,COL3 FROM TAB WHERE COL1 < 5’ 구문은 ‘SELECT T. * FROM TAB AS T’과 실행 결과나 적용 조건이 다르다. COUNT(DISTINCT COL1)은 COL1의 서로 다른 비NULL 값 개수를 센다. 반면 `DISTINCT COUNT(*)`는 집계 결과 한 행에 DISTINCT를 적용하므로 단순히 전체 행 수를 반환한다. 따라서 1번 보기 ‘SELECT COL1,COL2,COL3 FROM TAB WHERE COL1 < 5’의 적용 여부를 문제 조건과 대조해야 한다.
2
SELECT T. * FROM TAB AS T
정답 근거COUNT(DISTINCT COL1)은 COL1의 서로 다른 비NULL 값 개수를 센다. 반면 `DISTINCT COUNT(*)`는 집계 결과 한 행에 DISTINCT를 적용하므로 단순히 전체 행 수를 반환한다. 따라서 2번 보기 ‘SELECT T. * FROM TAB AS T’의 적용 여부를 문제 조건과 대조해야 한다.
3
SELECT * FROM TAB
오답 이유‘SELECT * FROM TAB’ 구문은 ‘SELECT T. * FROM TAB AS T’과 실행 결과나 적용 조건이 다르다. COUNT(DISTINCT COL1)은 COL1의 서로 다른 비NULL 값 개수를 센다. 반면 `DISTINCT COUNT(*)`는 집계 결과 한 행에 DISTINCT를 적용하므로 단순히 전체 행 수를 반환한다. 따라서 3번 보기 ‘SELECT * FROM TAB’의 적용 여부를 문제 조건과 대조해야 한다.
4
SELECT * FROM TAB WHERE COL2 IN (2,3)
오답 이유‘SELECT * FROM TAB WHERE COL2 IN (2,3) 따라서 4번 보기 ‘SELECT * FROM TAB WHERE COL2 IN (2,3)’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 2번
핵심 판단은 2번 ‘SELECT T. * FROM TAB AS T’입니다. COUNT(DISTINCT COL1)은 COL1의 서로 다른 비NULL 값 개수를 센다. 반면 `DISTINCT COUNT(*)`는 집계 결과 한 행에 DISTINCT를 적용하므로 단순히 전체 행 수를 반환한다.