-
카테고리
-
세부 분야
데이터베이스
-
해결 여부
미해결
복합쿼리 마지막 문제 질문
22.02.04 14:18 작성 조회수 124
0
안녕하세요!
강의 수강 중에 질문이 있어 글 남깁니다.
마지막 문제에서 저는
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에 다 포함되어서 출력되어서 그런것 아닐까 싶은데...
제가 이해한게 맞는지 모르겠습니다 ㅠㅠ!
<질문자 코드 결과>
<강의 코드 결과>
처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지] (업데이트)
-------------------------------------------------------------------
강의실 바로가기
답변을 작성해보세요.
0
잔재미코딩 DaveLee
지식공유자2022.02.05
네 맞는 것 같습니다.
그룹핑이 다르니까요. provider 및 main_cateogry 별로 그룹핑한것과 provider 만으로 그룹핑한 것은 이런 설명 그 자체로 그룹핑이 다른 것이니까요.
GROUP BY items.provider, ranking.main_category
답변 1