# 1. 언어/# 1.2. TEST

[solvesql] NULL 대체하기

지지킴 2025. 6. 24. 10:34

https://solvesql.com/problems/predict-game-scores-1/

 

https://solvesql.com/problems/predict-game-scores-1/

 

solvesql.com

 

NULL 값을 대체해야 할 땐, COALESCE를 사용할 수 있따!!

with avg_tb as (
  select genre_id,round(avg(critic_score),3)  as avg_critic_score,
          ceil(avg(critic_count)) as avg_critic_count,
          round(avg(user_score),3)   as avg_user_score,
          ceil(avg(user_count))  as avg_user_count
  from games
  group by genre_id
),
filtered_tb as (
  select *
  from games g
  where g.year>=2015 
  and (critic_score is null or critic_count is null or user_score is null or user_count is null)
)

select game_id, name,
        COALESCE(critic_score , a.avg_critic_score) as critic_score,
        COALESCE(critic_count, a.avg_critic_count) as critic_count,
        COALESCE(user_score, a.avg_user_score) as user_score,
        COALESCE(user_count, a.avg_user_count) as user_count
from filtered_tb f
join avg_tb a on f.genre_id = a.genre_id