인프런 커뮤니티 질문&답변

이주환님의 프로필 이미지
이주환

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

SQL 기출문제 ( + DML 디테일, 변형 문제 추가 )

SQL 기출문제(+DML 디테일, 변형 문제 추가)

해결된 질문

작성

·

137

0

32분에 있는 2022년 2회 (변형) 문제입니다.
혹시 여기서 서브쿼리를 사용하지 않고 단순하게 WHERE 절에
단가 < AVG(단가) 라고만 해도 되는지 여쭤보고 싶습니다!!

답변 1

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

아니요, 그렇게 사용해서는 결과가 도출되지 않습니다.

SQL에서 집계 함수를 사용할 때는 서브쿼리로 전체 테이블을 가져오거나,

그룹의 집계를 하거나 미리 계산한 다음에 그 값을 비교해야 합니다.

 

단순히 WHERE은 각 행별 조건만 평가할 때 사용합니다.

집계 함수는 단일 행에 대해서가 아니라 전체 테이블이나

그룹(뭔가를 묶어서 압축해야함)화 해서만 이용할 수 있기 때문에 안됩니다.

 

꼭 다르게 하고 싶으시다면, 이렇게는 됩니다.

지금 테이블 자체가 컬럼이 이미 답과 똑같기 때문에 전체를 뜻하는 * 을 사용해서

SELECT *
FROM 제품
WHERE 단가 < (SELECT AVG(단가) FROM 제품);

이렇게는 할 수 있습니다.

 

혹시 시간 여유가 생기시면, 수강평 하나 부탁드립니다... 😃

이주환님의 프로필 이미지
이주환
질문자

넵, 감사합니다!!

이주환님의 프로필 이미지
이주환

작성한 질문수

질문하기