책 내용 질문하기
온라인 채점 결과 문의
도서
2024 시나공 컴퓨터활용능력 1급 실기 총정리
페이지
0
조회수
61
작성일
2026-09-28
작성자
김*철
첨부파일

2024_최종모의고사_02회

-1. 인기과목처리 쿼리 0/7

-쿼리 비교 X [인기과목처리] 쿼리 (UPDATE 과목 INNER JOIN 과외내역 ON 과목.과목ID = 과외내역.과목ID SET 과목.비고 = "인기과목" WHERE (((과목.과목ID) In (select 과목ID FROM 과외내역 GROUP BY 과목ID HAVING SUM([계약수업일수])>=700))); )이 정답(UPDATE 과목 SET 과목.비고 = "인기과목" WHERE (((과목.과목ID) In (select 과목ID from 과외내역 group by 과목ID having sum(계약수업일수) >= 700))); )과 다릅니다.


>>왜 틀렸을까요?

답변
2026-09-28 16:35:25

안녕하세요.

작성하신 쿼리와 정답 쿼리는 형태는 다르지만, 조건에 맞는 과목ID의 비고를 "인기과목"으로 변경한다는 점에서는 같은 결과가 나올 수 있습니다.

작성하신 쿼리는 과목 테이블과 과외내역 테이블을 INNER JOIN한 후 다시 IN 하위 쿼리로 조건을 지정한 형태이고, 정답은 과목 테이블만 UPDATE 대상으로 지정한 뒤 IN 하위 쿼리에서 과외내역을 참조한 형태입니다.

이 문제에서는 이미 하위 쿼리에서 과외내역 테이블을 이용해 과목별 계약수업일수 합계를 구하고 있으므로, 바깥쪽 UPDATE 문에서 과외내역 테이블을 다시 조인할 필요가 없습니다. 따라서 정답과 같이 작성하는 것이 더 간결하고 문제의 의도에도 적합합니다.

또한 채점 프로그램은 정답 쿼리와 구조나 설정을 비교하는 방식이므로, 실행 결과가 같더라도 불필요한 INNER JOIN이 추가되면 정답과 다르게 판단될 수 있습니다.

따라서 이 경우에는 다음과 같이 정답 형태로 작성하는 것이 안전합니다.

UPDATE 과목 SET 과목.비고 = "인기과목" WHERE 과목.과목ID In (SELECT 과목ID FROM 과외내역 GROUP BY 과목ID HAVING SUM(계약수업일수) >= 700);

즐거운 하루 되세요.

  • 관리자
    2026-09-28 16:35:25

    안녕하세요.

    작성하신 쿼리와 정답 쿼리는 형태는 다르지만, 조건에 맞는 과목ID의 비고를 "인기과목"으로 변경한다는 점에서는 같은 결과가 나올 수 있습니다.

    작성하신 쿼리는 과목 테이블과 과외내역 테이블을 INNER JOIN한 후 다시 IN 하위 쿼리로 조건을 지정한 형태이고, 정답은 과목 테이블만 UPDATE 대상으로 지정한 뒤 IN 하위 쿼리에서 과외내역을 참조한 형태입니다.

    이 문제에서는 이미 하위 쿼리에서 과외내역 테이블을 이용해 과목별 계약수업일수 합계를 구하고 있으므로, 바깥쪽 UPDATE 문에서 과외내역 테이블을 다시 조인할 필요가 없습니다. 따라서 정답과 같이 작성하는 것이 더 간결하고 문제의 의도에도 적합합니다.

    또한 채점 프로그램은 정답 쿼리와 구조나 설정을 비교하는 방식이므로, 실행 결과가 같더라도 불필요한 INNER JOIN이 추가되면 정답과 다르게 판단될 수 있습니다.

    따라서 이 경우에는 다음과 같이 정답 형태로 작성하는 것이 안전합니다.

    UPDATE 과목 SET 과목.비고 = "인기과목" WHERE 과목.과목ID In (SELECT 과목ID FROM 과외내역 GROUP BY 과목ID HAVING SUM(계약수업일수) >= 700);

    즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.