다음 중 아래 <학생> 테이블에 대한 SQL문의 실행 결과로… | [컴퓨터활용능력 1급 필기] 20년 1회차 기출문제 상세 페이지
1[컴퓨터활용능력 1급 필기] 20년 1회차
다음 중 아래 <학생> 테이블에 대한 SQL문의 실행 결과로 옳은 것은?
1
21
2
22
3
23
4
24
해설
먼저 WHERE 학년="SN" 조건을 만족하는 레코드를 고르면 학번 1004(통계, 23세), 1005(영문, 21세), 1010(통계, 25세) 세 건이 남는다. 학년이 SO·JR·FR인 1002·1008·1009는 이 단계에서 제외된다.
남은 세 건을 GROUP BY 전공으로 묶으면 통계 그룹 2건, 영문 그룹 1건이 된다. 이어지는 HAVING COUNT(*) >= 2는 묶은 뒤의 그룹에 대한 조건이므로 레코드가 2건 이상인 통계 그룹만 남고 영문 그룹은 걸러진다.
따라서 최종 결과는 통계 전공 두 학생의 나이 평균인 (23 + 25) / 2 = 24 한 행이다. WHERE는 그룹으로 묶기 전 개별 레코드를 거르고 HAVING은 묶은 뒤의 그룹을 거른다는 순서를 기억하면 이런 문제를 안정적으로 풀 수 있다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.
