SCORE(subject_name, score) 테이블에서 과목별 평균이 85점 이상인 과목의 과목명, 최소점수, 최대점수를 조회하는 SQL을 작성하시오. 출력 별칭은 각각 subject_name, min_score, max_score로 하고 WHERE는 사용하지 않는다.
SCORE(subject_name, score)모범답안
SELECT subject_name, MIN(score) AS min_score, MAX(score) AS max_score FROM SCORE GROUP BY subject_name HAVING AVG(score) >= 85;
풀이와 판단 근거
과목마다 여러 점수를 하나의 그룹으로 묶으려면 subject_name으로 GROUP BY한다. 각 그룹의 최소·최대는 MIN과 MAX로 계산하고 요구한 별칭을 지정한다.
평균 85점 이상이라는 조건은 집계 결과에 대한 조건이므로 WHERE가 아니라 HAVING에서 AVG(score)와 비교해야 한다. 집계 전에 개별 행을 거르는 조건은 이 문제에 없다.
자주 틀리는 지점
- AVG(score) 조건을 WHERE에 작성함
- subject_name을 GROUP BY에서 누락함
- MIN과 MAX의 별칭을 서로 바꿈
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.