반응형

@notepad_jj2

츄르사려고 코딩하는집사입니다.


1. [solvesql] 복수 국적 메달 수상한 선수 찾기 SQLite

 

2. 문제 출처

https://solvesql.com/problems/multiple-medalist/

 

solvesql

© Copyright 2021-2022 solvesql.com

solvesql.com

 

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

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기