๋ฌธ์
https://solvesql.com/problems/main-platform-of-game-developers/
https://solvesql.com/problems/main-platform-of-game-developers/
solvesql.com
์ด ๋ฌธ์ ๋ ํ ์ด๋ธ ๊ตฌ์กฐ์ ์ฐธ์กฐ ๊ด๊ณ๋ฅผ ํ์ ํ๋๋ฐ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ ธ๋ค
์ฝ๋ ๋ต์
select
c.name as developer,
p.name as platform,
t.sales as sales
from
(select
developer_id,
platform_id,
sum(sales_na + sales_eu + sales_jp + sales_other) as sales,
dense_rank() over (partition by developer_id order by sum(sales_na + sales_eu + sales_jp + sales_other) desc) as rnk
from games
where developer_id is not null
group by 1, 2) as t
join companies c on t.developer_id = c.company_id
join platforms p on t.platform_id = p.platform_id
where t.rnk = 1
๋ฌธ์ ํ์ด
1. ๋ค์ค ๋งค์ถ ์ปฌ๋ผ์ sum์ ๊ตฌํ ๋ค, ํ๋ซํผ๋ณ ๋งค์ถ์ sum ๊ตฌํ๊ธฐ
sum(sales_na + sales_eu + sales_jp + sales_other) ์ด๋ ๊ฒ ์ด์ค์ผ๋ก sum์ ๊ตฌํ ์ ์๋ค๋ ์ฌ์ค ..!
2. dense_rank() over (partition by ~)
์ฌ๊ธฐ์ ์๋ฌด ์๊ฐ์์ด ํํฐ์ ์ ํ์ฌ, ํ๋ซํผ์ผ๋ก ๋๋ ๋ป ํ๋ค.
ํ๋ซํผ์ ๋งค์ถ ์์๋ฅผ ๊ตฌํ๋๊ฑฐ๋ ํ๋ซํผ์ ๋นผ์ผ๊ฒ ์ ธ ใ ใ
๋๋จธ์ง๋ ๋ฌธ์ ์กฐ๊ฑด์ ์ ํ์ ํ๊ณ ํ ์ด๋ธ ์ฐธ์กฐ ๊ด๊ณ๋ฅผ ์ดํดํ๋ฉด ํ ์ ์์ ๊ฒ์ด๋ค.
๋๋ ์
ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ๋นจ๋ฆฌ ํ์ ํ๋ ๊ฒ๋ ๋ฅ๋ ฅ์ด๋ค !
