안녕하세요!
강의 수강 중에 질문이 있어 글 남깁니다.
마지막 문제에서 저는
SELECT main_category, items.provider, AVG(items.dis_price), AVG(items.discount_percent), COUNT(*)
FROM items
INNER JOIN ranking ON items.item_code = ranking.item_code
GROUP BY items.provider
HAVING COUNT(*) >= 20
ORDER BY main_category, COUNT(*) DESC;
이렇게 판매자별로만 그룹을 지정해서 문제를 접근했었는데요.
강사님께서 작성해주신 아래 쿼리문을 기준으로 다시 돌려보니 결과값이 상이하게 나와서 궁금해졌습니다.
SELECT ranking.main_category, items.provider, AVG(items.dis_price), AVG(items.discount_percent), COUNT(*)
FROM items
INNER JOIN ranking ON items.item_code = ranking.item_code
GROUP BY items.provider, ranking.main_category
HAVING COUNT(*) >= 20;
그룹핑을 다르게 했으니 결과값은 상이하게 나오는게 당연하겠지만...
왜 상이하게 나오는지에 대해 바로 이해가 잘 되지 않아서요 ㅠㅠ..
제 추측으로는 그룹핑을 provider라는 하나의 기준으로만 시키는 바람에,
다른 메인 카테고리에 있는 똑같은 값들이 ALL에 다 포함되어서 출력되어서 그런것 아닐까 싶은데...
제가 이해한게 맞는지 모르겠습니다 ㅠㅠ!
<질문자 코드 결과>
<강의 코드 결과>