반응형
츄르사려고 코딩하는집사입니다.
1. [solvesql] 복수 국적 메달 수상한 선수 찾기 SQLite
2. 문제 출처
https://solvesql.com/problems/multiple-medalist/
3. 풀이
- RECORDS 테이블을 기준으로 GAMES, TEAMS, ATHLETES 테이블과 LEFT OUTER JOIN을 하여 테이블을 준비한다.
- 여기서, 메달 수상 이력이 있는 경우 이므로, 메달 컬럼에 NULL이 없는 데이터와 2000년 이후 데이터이므로, YEAR가 2000이상인 데이터를 조건으로 가져온다.
- 그리고, 운동선수 ID를 기준으로 GROUP BY를 하여 팀의 국적이 2개 이상인 경우라고 했으므로, DISTINCT 하여 GROUP BY를 진행하여 NAME을 기준으로 정렬하면 된다.
4. 소스 코드
SELECT A.NAME
FROM RECORDS R
LEFT OUTER JOIN GAMES G ON R.GAME_ID = G.ID
LEFT OUTER JOIN TEAMS T ON R.TEAM_ID = T.ID
LEFT OUTER JOIN ATHLETES A ON R.ATHLETE_ID = A.ID
WHERE R.MEDAL IS NOT NULL
AND G.YEAR >= 2000
GROUP BY R.ATHLETE_ID
HAVING COUNT(DISTINCT T.TEAM) > 1
ORDER BY name ASC
반응형
'알고리즘 > solvesql' 카테고리의 다른 글
[solvesql] 지역별 주문의 특징 SQLite (0) | 2022.10.25 |
---|---|
[solvesql] 가구 판매의 비중이 높았던 날 찾기 SQLite (0) | 2022.10.25 |
[solvesql] 일별 블로그 방문자 수 집계 SQLite (0) | 2022.10.25 |
[solvesql] 작품이 없는 작가 찾기 SQLite (0) | 2022.10.25 |
[solvesql] 첫 주문과 마지막 주문 SQLite (2) | 2022.10.21 |
[solvesql] 레스토랑의 대목 SQLite (0) | 2022.10.21 |
[solvesql] 많이 주문한 테이블 찾기 SQLite (0) | 2022.10.21 |
[solvesql] 레스토랑의 요일별 VIP SQLite (0) | 2022.10.21 |
최근댓글