학습용 기출·복원자료 분류 확인SQLD · 2025년 56회 SQL 기본 및 활용 · 18번
업체 테이블에 p, q, r 데이터가 있고 물품은 각 30, 40, 50개가 있다. 쿼리문 수행 결과로 옳은 것은?
1
3, 0
오답 이유‘3, 0’은 이 문항에서 요구하는 ‘3, 30’의 정의·역할과 구분된다. COUNT(DISTINCT COL1)은 COL1의 서로 다른 비NULL 값 개수를 센다. 반면 `DISTINCT COUNT(*)`는 집계 결과 한 행에 DISTINCT를 적용하므로 단순히 전체 행 수를 반환한다. 따라서 1번 보기 ‘3, 0’의 적용 여부를 문제 조건과 대조해야 한다.
2
3, 30
정답 근거COUNT(DISTINCT COL1)은 COL1의 서로 다른 비NULL 값 개수를 센다. 반면 `DISTINCT COUNT(*)`는 집계 결과 한 행에 DISTINCT를 적용하므로 단순히 전체 행 수를 반환한다. 따라서 2번 보기 ‘3, 30’의 적용 여부를 문제 조건과 대조해야 한다.
3
3, 오류가 발생한다.
오답 이유‘3, 오류가 발생한다.’은 이 문항에서 요구하는 ‘3, 30’의 정의·역할과 구분된다. COUNT(DISTINCT COL1)은 COL1의 서로 다른 비NULL 값 개수를 센다. 반면 `DISTINCT COUNT(*)`는 집계 결과 한 행에 DISTINCT를 적용하므로 단순히 전체 행 수를 반환한다. 따라서 3번 보기 ‘3, 오류가 발생한다.’의 적용 여부를 문제 조건과 대조해야 한다.
4
3, NULL
오답 이유‘3, NULL’ 구문은 ‘3, 30’과 실행 결과나 적용 조건이 다르다. COUNT(DISTINCT COL1)은 COL1의 서로 다른 비NULL 값 개수를 센다. 반면 `DISTINCT COUNT(*)`는 집계 결과 한 행에 DISTINCT를 적용하므로 단순히 전체 행 수를 반환한다. 따라서 4번 보기 ‘3, NULL’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 2번
핵심 판단은 2번 ‘3, 30’입니다. COUNT(DISTINCT COL1)은 COL1의 서로 다른 비NULL 값 개수를 센다. 반면 `DISTINCT COUNT(*)`는 집계 결과 한 행에 DISTINCT를 적용하므로 단순히 전체 행 수를 반환한다.