[solvesql/SQLite] 멀티 플랫폼 게임 찾기

주연·2025년 5월 29일

SQL 문제 풀이

목록 보기
30/34

문제 요약
1. 둘 이상의 메이저 플랫폼 계열에 출시된 게임 찾기
Sony: 'PS3', 'PS4', 'PSP', 'PSV'
Nintendo: 'Wii', 'WiiU', 'DS', '3DS'
Microsoft: 'X360', 'XONE'
2. 2012년 이후 출시
3. 중복된 게임 1번만 출력

문제 풀이
2번 틀렸다..ㅎ
1. FROM 서브쿼리에서 게임명 추출 시 DISTINCT 사용하지 않음 (밖에 사용)
2. year >= 2012 (year > 2012로 사용)

추가로 알게된 것!
JOIN절 쓸 때 ON 말고도 USING 절 사용 가능
ON - 컬럼명 달라도 사용 가능
USING - 컬럼명 같아야 사용 가능, 괄호 이용

SELECT name
FROM 
  (SELECT DISTINCT g.name,
    CASE WHEN p.name IN ('PS3', 'PS4', 'PSP', 'PSV') THEN 'Sony'
        WHEN p.name IN ('Wii', 'WiiU', 'DS', '3DS') THEN 'Nintendo'
        WHEN p.name IN ('X360', 'XONE') THEN 'Microsoft'
    END bp
  FROM games g
  JOIN platforms p USING (platform_id)
  WHERE year >= 2012) D1
GROUP BY name
HAVING COUNT(bp) > 1
profile
공부 기록

0개의 댓글