쿼리 비교 X [적은출동지역조회] 쿼리 (SELECT 소방본부.본부명, 구급활동.년도, 구급활동.월, 구급활동.이송건수, 구급활동.이송환자수, 구급활동.출동건수 FROM 소방본부 INNER JOIN 구급활동 ON 소방본부.순번 = 구급활동.본부번호 WHERE (((Mid([본부명],2,1)) In ("남","북"))) GROUP BY 소방본부.본부명, 구급활동.년도, 구급활동.월, 구급활동.이송건수, 구급활동.이송환자수, 구급활동.출동건수 HAVING (((구급활동.출동건수)<10000)) ORDER BY 구급활동.이송환자수 DESC; )이 정답(SELECT 소방본부.본부명, 구급활동.년도, 구급활동.월, 구급활동.이송건수, 구급활동.이송환자수, 구급활동.출동건수 INTO 적은출동지역확인 FROM 소방본부 INNER JOIN 구급활동 ON 소방본부.순번 = 구급활동.본부번호 WHERE (((구급활동.출동건수)<10000) AND ((Mid([본부명],2,1)) In ("남","북"))) ORDER BY 구급활동.이송환자수 DESC; )과 다릅니다.
저는 요약을 선택해서 조건을 표시해서 group by 로 묶여서 틀렸는데요
요약을 하고 안 하고 차이를 정확하게 모르겠습니다 어떨 때만 요약을 하나요?
안녕하세요.
이 문제에서는 요약(Σ)을 사용하면 안 됩니다. 이유는 문제에서 요구한 것이 “집계”가 아니라 조건에 맞는 개별 레코드를 그대로 조회해서 새 테이블로 만드는 것이기 때문입니다.
작성하신 쿼리는 요약을 켜면서
GROUP BY ...
HAVING 출동건수 < 10000형태가 되었습니다.
반면 정답은
WHERE 출동건수 < 10000처럼 일반 조건으로 처리합니다.
핵심은 요약은 여러 레코드를 묶어서 하나의 결과로 계산할 때만 사용한다는 것입니다. 예를 들어 문제에서 합계, 평균, 개수, 최대값, 최소값 등을 구하라고 하면 요약을 사용합니다.
예를 들면
본부별 출동건수의 합계
지역별 평균 이송건수
년도별 레코드 개수
가장 큰 출동건수처럼 Sum, Avg, Count, Max, Min 등이 필요할 때 Σ를 켭니다.
반대로 이번 문제처럼
출동건수가 10000 미만인 자료
본부명의 두 번째 글자가 남 또는 북
이송환자수 내림차순처럼 각 레코드를 조건으로 골라내기만 하는 문제라면 요약을 사용하지 않습니다.
쉽게 구분하면 다음처럼 생각하시면 됩니다.
“여러 행을 묶어서 계산해야 하나?” → 예: 요약 사용
“조건에 맞는 행만 골라내면 되나?” → 아니오: 요약 사용 안 함
이번 문제는 후자입니다.
그리고 채점 결과에는 요약 외에 한 가지 차이가 더 있습니다. 정답은
INTO 적은출동지역확인이 들어 있는 테이블 만들기 쿼리입니다. 작성하신 쿼리에는 INTO가 없으므로 일반 선택 쿼리 상태입니다.
따라서 이번 문제는
① 요약(Σ) 사용 안 함
② 출동건수 < 10000은 조건 행에 입력
③ Mid([본부명],2,1) In ("남","북")도 조건으로 사용
④ 테이블 만들기 쿼리로 변경하여 적은출동지역확인 테이블 생성
⑤ 이송환자수 내림차순으로 작성해야 합니다.
즐거운 하루 되세요.
-
관리자2026-09-15 17:58:19
안녕하세요.
이 문제에서는 요약(Σ)을 사용하면 안 됩니다. 이유는 문제에서 요구한 것이 “집계”가 아니라 조건에 맞는 개별 레코드를 그대로 조회해서 새 테이블로 만드는 것이기 때문입니다.
작성하신 쿼리는 요약을 켜면서
GROUP BY ... HAVING 출동건수 < 10000형태가 되었습니다.
반면 정답은
WHERE 출동건수 < 10000처럼 일반 조건으로 처리합니다.
핵심은 요약은 여러 레코드를 묶어서 하나의 결과로 계산할 때만 사용한다는 것입니다. 예를 들어 문제에서
합계,평균,개수,최대값,최소값등을 구하라고 하면 요약을 사용합니다.예를 들면
본부별 출동건수의 합계 지역별 평균 이송건수 년도별 레코드 개수 가장 큰 출동건수처럼
Sum,Avg,Count,Max,Min등이 필요할 때 Σ를 켭니다.반대로 이번 문제처럼
출동건수가 10000 미만인 자료 본부명의 두 번째 글자가 남 또는 북 이송환자수 내림차순처럼 각 레코드를 조건으로 골라내기만 하는 문제라면 요약을 사용하지 않습니다.
쉽게 구분하면 다음처럼 생각하시면 됩니다.
“여러 행을 묶어서 계산해야 하나?” → 예: 요약 사용
“조건에 맞는 행만 골라내면 되나?” → 아니오: 요약 사용 안 함이번 문제는 후자입니다.
그리고 채점 결과에는 요약 외에 한 가지 차이가 더 있습니다. 정답은
INTO 적은출동지역확인이 들어 있는 테이블 만들기 쿼리입니다. 작성하신 쿼리에는
INTO가 없으므로 일반 선택 쿼리 상태입니다.따라서 이번 문제는
① 요약(Σ) 사용 안 함 ② 출동건수 < 10000은 조건 행에 입력 ③ Mid([본부명],2,1) In ("남","북")도 조건으로 사용 ④ 테이블 만들기 쿼리로 변경하여 적은출동지역확인 테이블 생성 ⑤ 이송환자수 내림차순으로 작성해야 합니다.
즐거운 하루 되세요.