coding/sql 코딩테스트

[solvesql] 게임 평점 예측하기 1

임이레 2025. 1. 9. 17:14

solvesql 의 게임 평점 예측하기 1 

 

with avg_sc_and_cnt as (
SELECT gm.genre_id
, round(avg(critic_score),3) as avg_critic_sc
, ceil(avg(critic_count)) as avg_critic_cnt
, round(avg(user_score),3) as avg_user_sc
, ceil(avg(user_count)) as avg_user_cnt
FROM games gm join genres gr on gm.genre_id = gr.genre_id
GROUP BY gm.genre_id
)

SELECT game_id
, name
, CASE WHEN a.critic_score is null then b.avg_critic_sc else a.critic_score END AS critic_score
, CASE WHEN a.critic_count is null then b.avg_critic_cnt else a.critic_count END AS critic_count
, CASE WHEN a.user_score is null then b.avg_user_sc else a.user_score END AS user_score
, CASE WHEN a.user_count is null then b.avg_user_cnt else a.user_count END AS user_count
FROM games a LEFT JOIN avg_sc_and_cnt b ON a.genre_id = b.genre_id
WHERE year >= 2015
AND (critic_score IS NULL OR user_score IS NULL);

 

 

내가 푼 방식은 하나의 sub table 을 만들어준 뒤 처리했다.

그리 어렵지 않은 문제지만 ,, 쬐꼼 헷갈렸다 ㅠㅠ 

문제 설명에서 2015년 이후에 발매한 게임 중 누락된 평점 정보가 있는 게임에 대해서 라는 조건이 있기 때문에 조건을 꼼꼼히 잘 읽고 조건에 대한 코드 처리를 잘 해줘야 하는 것이 쿼리테스트에서 중요한 것 같다.