[SQL 테스트]게임 개발사의 주력 플랫폼 찾기

김준석·2024년 12월 13일

코딩테스트 - SQL

목록 보기
91/96

문제

https://solvesql.com/problems/main-platform-of-game-developers/

이번 문제의 포인트는 각 게임 개발사의 주력 플랫폼을 찾는 것.

주력 플랫폼이란?
게임 개발사 별(developerid)로 판매량(sales~)이 가장 높은🔝 플랫폼(platform_id)

풀이

그래서 먼저 주력 플랫폼을 찾는 CTE 구문을 작성해줌.
이때 rank() 함수를 사용해 developer_id 기준으로 판매량 순위를 적어 줌.

--주력 플랫폼
WITH mainplatforms AS(
  SELECT
    developer_id,
    platform_id,
    SUM(sales_na+sales_eu+sales_jp+sales_other) AS sales,
    RANK() OVER(PARTITION BY developer_id ORDER BY SUM(sales_na+sales_eu+sales_jp+sales_other) DESC) AS sales_rank
  FROM
    games
  GROUP BY
    developer_id,
    platform_id
)

이후 Join과 rank가 1인 데이터를 추출!

SELECT
  c.name AS developer,
  p.name AS platform,
  g.sales
FROM 
  mainplatforms g
  INNER JOIN platforms p
    ON g.platform_id = p.platform_id
  INNER JOIN companies c
    ON g.developer_id = c.company_id
WHERE 1=1
  AND g.sales_rank = 1

0개의 댓글