Day 13. ๊ฒ์ ๊ฐ๋ฐ์ฌ์ ์ฃผ๋ ฅ ํ๋ซํผ ์ฐพ๊ธฐ
https://solvesql.com/problems/main-platform-of-game-developers/
WITH T1 AS (
SELECT c.name AS developer
, p.name AS platform
, SUM(g.sales_eu+g.sales_jp+g.sales_na+g.sales_other) AS sales
FROM games AS g
INNER JOIN platforms AS p ON g.platform_id = p.platform_id
INNER JOIN companies AS c ON g.developer_id = c.company_id
GROUP BY c.name, p.name
ORDER BY c.name, p.name
), T2 AS (
SELECT *
, RANK() OVER(PARTITION BY developer ORDER BY sales DESC) AS RNK
FROM T1
)
SELECT developer, platform, sales
FROM T2
WHERE RNK = 1
โWHERE ์ ์ ์์๊ฐ 1์ธ ๊ฒ๋ง ๋ณด๊ฒ ํํฐ๋ง
+) WITH ์ : T1
โ๊ฒ์์ฌ์ ๋งค์ถ์ ํ๋์ ๋งค์ถ๋ก ํฉ์นจ
โINNER JOIN ์ผ๋ก ํ
์ด๋ธ ๊ฒฐํฉ
โGROUP BY๋ก ํ์ฌ์ด๋ฆ, ํ๋ซํผ ์ด๋ฆ์ผ๋ก ๊ทธ๋ฃนํ
+) WITH ์ : T2
โRANK() ์๋์ฐ ํจ์ ์ฌ์ฉํด์ ๊ฐ๋ฐ์, ๋งค์ถ ๋ด๋ฆผ์ฐจ์์ ๊ธฐ์ค์ผ๋ก ์์ ๋งค๊ธฐ๊ธฐ