다음 중 아래 스키마를 보고 평점이 3.0 이상인 학생들의 이름을 보여주는 SQL을 표현한 것으로 가장 적절한 것은?
--------------------------------------------------------------------------------
아 래
<스키마>
※ 밑줄친 속성은 기본키(Primary Key)이며 ENROLL의 학번은 STUDENT의 학번을 참조하는 외래키(Foreign Key)이고, ENROLL의 강좌번호는 CLASS의 강좌번호를 참조하는 외래키이다.
STUDENT(학번, 학과, 이름)
CLASS(강좌번호, 시간, 강좌이름)
ENROLL(학번, 강좌번호, 학점)
--------------------------------------------------------------------------------
①
SELECT 학번, MIN(이름)
FROM STUDENT S, ENROLL E
GROUP BY E.학번
HAVING AVG(E.학점) >= 3.0
②
SELECT S.학번, MIN(이름)
FROM STUDENT S, ENROLL E
WHERE S.학번=E.학번
HAVING AVG(E.학점)
③
SELECT S.학번, MIN(이름)
FROM STUDENT S, ENROLL E
WHERE S.학번=E.학번
GROUP BY S.학번
HAVING AVG(E.학점) >= 3.0
④
SELECT 학번, MIN(이름)
FROM STUDENT S, ENROLL E
WHERE S.학번=E.학번
GROUP BY S.학번
HAVING AVG(E.학점) > 3.0
[출처] http://www.dbguide.net/da.db?cmd=snb13_view&boardGroupUid=6&boardConfigUid=81&boardUid=151491
------------------------------------------------------------------------
* 정답 및 해설 *
정답 ③
GROUP BY 절 이후에 조건을 적용하는 경우는 HAVING 절이 사용된 경우이다.
그룹핑된 값에 조건을 적용하는 경우 HAVING 절을 사용한다.
JOIN 절에 ALIAS를 사용한 경우, 2개 이상의 테이블에 공통적으로 사용되고 SELECT 절에 사용되는 칼럼에는 ALIAS 접두사를 붙여야 한다.
[출처] http://www.dbguide.net/da.db?cmd=snb13_view&boardGroupUid=6&boardConfigUid=81&boardUid=151606