[SQL Test] 복수 국적 메달 수상한 선수 찾기

아리엘 (Ariel)·2025년 1월 12일
1

SQL Test

목록 보기
7/9

복수 국적 메달 수상한 선수 찾기


📌 문제
https://solvesql.com/problems/multiple-medalist/

  • 2000년 이후
  • 2개 이상의 국적으로
  • 메달을 수상한 선수 이름을 (⬅️놓친 부분)
  • 오름차순으로 정렬

📌 정답

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 절에 작성한다.



💡 질문과 피드백 사항은 댓글에 편하게 남겨주시기 바랍니다.
❤️ 도움이 되셨다면 공감 부탁드립니다.

profile
Data Analyst / Engineer

0개의 댓글