
3주차 숙제 복습하다가 이해(?)가 안되는 부분이 있어 질문 드립니다.
잘못된건 아니고.... 왜 이런 값이 나오는지 궁금해서 튜터님의 힘을 빌리고자 합니다.
(진짜 질문!!!!!!!!)
user_id,enrolled_id 두 컬럼으로 그룹핑하는거랑
user_id로만 그룹핑하는거랑 왜 차이가 나는지 궁금합니다.
--------------------------------------------------------------------------------------------------------------------------------------------
[문제]
-- enrolled_id별 수강완료(done=1)한 강의 갯수를 세어보고, 완료한 강의 수가 많은 순서대로 정렬해보기. user_id도 같이 출력되어야 한다.
[실제 답안]
select e.enrolled_id
,e.user_id
,count(*) as cnt
from enrolleds e
inner join enrolleds_detail ed
on e.enrolled_id = ed.enrolled_id
where ed.done = 1
group by e.enrolled_id, e.user_id
order by cnt desc
[저의 답안]
select e.user_id
,ed.enrolled_id
,count(*) as cnt
from enrolleds e
inner join enrolleds_detail ed
on e.enrolled_id = ed.enrolled_id
WHERE ed.done = 1
group by e.user_id
order by cnt desc
--------------------------------------------------------------------------------------------------------------------------------------------
둘의 차이는, 제 쿼리에는 group by에 enrolled_id별로 그룹핑하지 않았다는 건데요.
그렇게 쿼리 돌렸더니 아래와 같이 나왔습니다. (아래 전체화면캡쳐 참고)

cnt컬럼값의 최대수가 답안결과랑 다르게 나왔습니다.
