책 내용 질문하기
43p
도서
2017 시나공 SUMMARY 컴퓨터활용능력 1급 필기
페이지
43
조회수
115
작성일
2017-09-20
작성자
탈퇴*원
첨부파일

HAVING AVG(판매수량)>=80 이거를

WHERE 문에서 그냥 40000원 이상 판매단가랑 평균80이상인 걸 다 적으면 안되나요??

다시 한번 정리하면

SELECT 지점명, AVG(판매수량) AS 판매수량평균, SUM(판매금액) AS 총판매금액

FROM 제품판매현황

WHERE 판매단가>=40000

GROUP BY 지점명

HAVING AVG(판매수량)>=80;

SELECT 지점명, AVG(판매수량) AS 판매수량평균, SUM(판매금액) AS 총판매금액

FROM 제품판매현황

WHERE 판매단가>=40000, AVG(판매수량)>=80;

GROUP BY 지점명;

이렇게 바꾸면 똑같은 거 아닌가요??

답변
2017-09-22 09:43:00

안녕하세요.

똑같지 않습니다. 'WHERE 판매단가>=40000, AVG(판매수량)>=80;'과 같이 avg 함수를 where 함수에 사용할 수 없습니다. avg 함수를 사용할 수 있다고 해도 두 경우는 똑같은 의미라고 할 수 없습니다.

WHERE 판매단가>=40000

GROUP BY 지점명

HAVING AVG(판매수량)>=80;

-> 판매단가가 40000 이상인 데이터만을 추출한 후 지점명별로 그룹을 지정하고, 각 그룹별 판매수량의 평균을 구한 후 80 이상인 그룹만을 표시합니다. 이 경우 그룹을 지정할 때 판매수량이 80 이하인 데이터들도 포함이 되서 그룹을 지정합니다.

WHERE 판매단가>=40000, AVG(판매수량)>=80;

GROUP BY 지점명;

-> 이것은 그룹을 지정할 떄 이미 판매단가와 판매수량의 조건을 모두 지정하였으므로, 그룹을 지정할 때 판매수량이 80 이하인 데이터는 포함되지 않습니다.

즐거운 하루 되세요.

  • *
    2017-09-22 09:43:00

    안녕하세요.

    똑같지 않습니다. 'WHERE 판매단가>=40000, AVG(판매수량)>=80;'과 같이 avg 함수를 where 함수에 사용할 수 없습니다. avg 함수를 사용할 수 있다고 해도 두 경우는 똑같은 의미라고 할 수 없습니다.

    WHERE 판매단가>=40000

    GROUP BY 지점명

    HAVING AVG(판매수량)>=80;

    -> 판매단가가 40000 이상인 데이터만을 추출한 후 지점명별로 그룹을 지정하고, 각 그룹별 판매수량의 평균을 구한 후 80 이상인 그룹만을 표시합니다. 이 경우 그룹을 지정할 때 판매수량이 80 이하인 데이터들도 포함이 되서 그룹을 지정합니다.

    WHERE 판매단가>=40000, AVG(판매수량)>=80;

    GROUP BY 지점명;

    -> 이것은 그룹을 지정할 떄 이미 판매단가와 판매수량의 조건을 모두 지정하였으므로, 그룹을 지정할 때 판매수량이 80 이하인 데이터는 포함되지 않습니다.

    즐거운 하루 되세요.

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