모두CBT

다음과 같은 SQL 문에 대한 설명으로 옳지 않은 것은?SELECT 부… | [컴퓨터활용능력 1급 필기] 10년 1회차 기출문제 상세 페이지

1[컴퓨터활용능력 1급 필기] 10년 1회차
다음과 같은 SQL 문에 대한 설명으로 옳지 않은 것은?
SELECT 부서, AVG(기본급) AS [부서별기본급평균]
FROM 직원 GROUP BY 부서;
1
GROUP BY 절을 생략할 수 있으며, 생략하여도 질의 결과는 같다.
2
SELECT 부서, sum(기본급)/count(기본급) AS [부서별기본급평균] FROM 직원 GROUP BY 부서; 질의와 항상 동일한 결과를 나타낸다.
3
표시되는 레코드의 수와 관계 없이 질의의 결과 필드수는 항상 2개이다.
4
질의의 결과는 반드시 '부서'의 개수(부서 필드의 값의 종류수)만큼의 레코드를 표시한다.
해설

이 질의는 SELECT 부서, AVG(기본급) AS [부서별기본급평균] FROM 직원 GROUP BY 부서; 로, 직원 테이블을 부서별로 묶어 각 부서의 기본급 평균을 구한다.

집계 함수 AVG(기본급) 와 집계 대상이 아닌 일반 필드 부서 를 함께 선택했기 때문에 GROUP BY 부서 절은 반드시 있어야 한다. 이 절을 빼면 부서 필드를 어떤 기준으로 표시해야 할지 정해지지 않아 질의가 실행되지 않으며, 설령 실행된다 해도 전체를 하나로 묶은 평균 한 줄만 나오므로 결과가 결코 같을 수 없다. 따라서 GROUP BY 를 생략할 수 있고 생략해도 결과가 같다는 설명이 옳지 않다.

나머지 설명은 성립한다. 결과 필드는 '부서'와 '부서별기본급평균' 두 개로 고정되어 레코드 수와 무관하고, 그룹의 개수가 곧 부서 값의 종류 수이므로 표시되는 레코드 수는 부서 종류의 수와 같다. 또 AVG(기본급)sum(기본급)/count(기본급) 는 둘 다 Null 을 제외하고 계산하므로 같은 값을 낸다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.