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 지점명;
이렇게 바꾸면 똑같은 거 아닌가요??
안녕하세요.
똑같지 않습니다. '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 이하인 데이터는 포함되지 않습니다.
즐거운 하루 되세요.