본문 바로가기
MYSQL/solvesql

멀티 플랫폼 게임 찾기

by 수스리 2025. 6. 21.

문제

다양한 게임 플랫폼이 존재하지만, 제작사가 같은 플랫폼 들은 같은 계열의 플랫폼으로 분류됩니다. 그 중 아래 세 플랫폼 계열은 점유율이 높은 메이저 플랫폼 계열입니다. 플랫폼 계열이 다르면 게임 개발을 새로해야하는 경우가 많기 때문에, 많은 게임 개발사들은 여러 플랫폼 계열에 게임을 출시하는 것을 어려워 합니다.

  • Sony: 'PS3', 'PS4', 'PSP', 'PSV'
  • Nintendo: 'Wii', 'WiiU', 'DS', '3DS'
  • Microsoft: 'X360', 'XONE'

데이터베이스를 조회해 2012년 이후 출시된 게임들 중 둘 이상의 메이저 플랫폼 계열에 출시된 게임 이름을 출력하는 쿼리를 작성해주세요. 쿼리 결과에는 아래 컬럼만 포함되어 있어야 하고, 중복된 게임은 1번만 출력되어야 합니다.

 

코드

WITH major_p AS (
  SELECT *,
        CASE 
          WHEN P.name = 'PS3' OR P.name = 'PS4' OR P.name = 'PSP' OR P.name = 'PSV' THEN "Sony"
          WHEN P.name = 'Wii' OR P.name = 'WiiU' OR P.name = 'DS' OR P.name = '3DS' THEN "Nintendo"
          WHEN P.name = 'X360' OR P.name = 'XONE' THEN "Microsoft"
          ELSE NULL
        END AS major
  FROM platforms P
)
SELECT DISTINCT G.name
FROM games G
JOIN major_p P ON G.platform_id = P.platform_id
WHERE year >= 2012 AND major IS NOT NULL
GROUP BY G.name
HAVING COUNT(DISTINCT P.major) > 1

다른 코드와 비교 했을 때 크게 내 코드와 다르지 않았다.

CASE WHEN을 잘 쓰는 문제다!

'MYSQL > solvesql' 카테고리의 다른 글

미세먼지 수치의 계절간 차이  (0) 2025.06.23
전국 카페 주소 데이터 정제하기  (1) 2025.06.21
폐쇄할 따릉이 정류소 찾기 2  (1) 2025.06.19
멘토링 짝꿍 리스트  (0) 2025.06.16
지역별 주문의 특징  (0) 2025.06.06