📌 문제
https://solvesql.com/problems/multiple-medalist/
📌 정답
select a.name
from athletes as a, records as r, teams as t, games as g
where a.id = r.athlete_id
and r.team_id = t.id
and g.id = r.game_id
and medal is not null
and g.year >= 2000
group by a.id
having count(distinct t.id) >= 2
order by a.name
💡포인트
- where 절에서 "메달 보유, 2000년 이후" 조건을 걸어야 한다.
- count 집계 함수는 where 절에서 사용이 불가하다.
- 한 선수에 대해 국적이 여러 개인지 확인해야 하므로 group by 조건에 선수 id를 넣어 선수별로 묶어준다.
- 선수별로 그룹화된 데이터에 대해 고유한 국적 개수를 세는 count 함수를 having 절에 작성한다.
💡 질문과 피드백 사항은 댓글에 편하게 남겨주시기 바랍니다.
❤️ 도움이 되셨다면 공감 부탁드립니다.