
제가 짠 쿼리입니다.
SELECT e1.enrolled_id,
e1.user_id,
count(e2.done) as cnt ----------- ㄱ
FROM enrolleds e1
inner join enrolleds_detail e2 on e1.enrolled_id = e2.enrolled_id
where e2.done = 1
group by e1.enrolled_id --------------------- ㄴ
order by cnt desc;
정답 쿼리입니다.
SELECT e1.enrolled_id,
e1.user_id,
count(*) as cnt
FROM enrolleds e1
inner join enrolleds_detail e2 on e1.enrolled_id = e2.enrolled_id
where e2.done = 1
group by e1.enrolled_id, e1.user_id
order by cnt desc;
ㄱ과 ㄴ에서 차이가 발생했음에도 결과값이 동일하게 도출된 이유는 뭔가요?
문제에 'enrolled_id별'이라는 조건 때문에 그룹을 하나의 조건만 걸었습니다.
문제 맨 마지막 'user_id도 같이 출력 되어야 한다.' 라는 조건 때문에 ㄴ에 e1.user_id를 추가해야 하는건가요?

