๋์ด๋3
Video Game Sales with Ratings ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ 2016๋ ๊น์ง ๋ฐ๋งค๋ ๊ฒ์์ ์ฃผ์ ์ ๋ณด์ ํ๋งค๋, ํ์ ์ ๋ณด๊ฐ ๋ด๊ฒจ ์์ต๋๋ค. games ํ ์ด๋ธ์ ๋ค์ด์๋ ํ์ ์ ๋ณด๋ ํ๋ก ๊ฐ ํ์ (critic_score), ํ์ ์ ๋จ๊ธด ํ๋ก ๊ฐ ์(critic_count), ์ฌ์ฉ์ ํ์ (user_score), ํ์ ์ ๋จ๊ธด ์ฌ์ฉ์ ์(user_count)๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
ํ์ ์ ๋ณด์ ์ผ๋ถ ๋๋ฝ์ด ์์์ ์๊ฒ๋ ๋น์ ์ ๊ฐ์ ์ฅ๋ฅด๋ฅผ ๊ฐ์ง ๊ฒ์๋ค์ ํ๊ท ํ์ ๊ณผ ํ๊ท ํ๋ก ๊ฐ/์ฌ์ฉ์ ์๋ฅผ ํ์ฉํด ๋๋ฝ๋ ๊ฐ์ ์ฑ์ฐ๋ ค๊ณ ํฉ๋๋ค. 2015๋ ์ดํ์ ๋ฐ๋งคํ ๊ฒ์ ์ค ๋๋ฝ๋ ํ์ ์ ๋ณด๊ฐ ์๋ ๊ฒ์์ ๋ํด์ ๊ฐ์ ์ฅ๋ฅด๋ฅผ ๊ฐ์ง ์ ์ฒด ๊ฒ์์ ํ๊ท ํ์ ๊ณผ ํ๊ท ํ๋ก ๊ฐ/์ฌ์ฉ์ ์๋ฅผ ์ฌ์ฉํด ๋๋ฝ๋ ์ ๋ณด๋ฅผ ์ฑ์ฐ๋ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์๋ ๋๋ฝ๋ ํ์ ์ ๋ณด๊ฐ ์๋ ๊ฒ์๋ง ํฌํจ๋์ด์ผ ํ๋ฉฐ, ์๋ 6๊ฐ ์ปฌ๋ผ์ด ์์ด์ผ ํฉ๋๋ค. ๋ํ, ํ๋ก ๊ฐ์ ์ฌ์ฉ์ ํ์ ํ๊ท ์ ์์์ ์๋ ๋ท์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ ํด ์ ์งธ ์๋ฆฌ๊น์ง ์ถ๋ ฅ๋์ด์ผ ํ๊ณ , ์ฌ์ฉ์ ์๋ ์ฌ๋ฆผํ์ฌ ์์ฐ์๋ก ์ถ๋ ฅ๋์ด์ผ ํฉ๋๋ค.
- game_id: ๊ฒ์ ID
- name: ๊ฒ์ ์ด๋ฆ
- critic_score: ํ๋ก ๊ฐ ํ์ ํ๊ท
- critic_count: ํ์ ์ ๋จ๊ธด ํ๋ก ๊ฐ ์
- user_score: ์ฌ์ฉ์ ํ์ ํ๊ท
- user_count: ํ์ ์ ๋จ๊ธด ์ฌ์ฉ์ ์
WITH F AS(
SELECT genre_id, ROUND(AVG(critic_score),3) as f_cri_score, CEILING(AVG(critic_count)) as f_cri_cnt ,
ROUND(AVG(user_score),3) as f_user_score, CEILING(AVG(user_count)) as f_user_cnt
FROM games
WHERE critic_score is NOT NULL OR user_score is NOT NULL
GROUP BY genre_id
)
SELECT game_id, name, COALESCE(critic_score,f_cri_score) AS critic_score, COALESCE(critic_count,f_cri_cnt) AS critic_count,
COALESCE(user_score, f_user_score) as user_score, COALESCE(user_count, f_user_cnt) as user_count
FROM games LEFT JOIN F USING(genre_id)
WHERE (critic_score is NULL or user_score is NULL) AND year >= 2015