SQL 배우기

[SQL] NULL 값이 있을 때 연산하기 (SIGN, COALESCE)

차근차근 디지털 2024. 1. 9. 22:37

년도별 평균 적금 판매 좌수를 구하고 싶습니다. 2023년도 4분기는 아직 결산이 안됐습니다. NULL값으로 발생하는 문제가 있습니다.

→ NULL 값을 함께 연산을 하면 NULL 값이 나옵니다. (COALESCE 처리)

→ NULL 값이 아닌 분기들의 평균을 구하고 싶습니다. (SIGN, COALESCE 처리)

 

year Q1 Q2 Q3 Q4
2021 1000 1200 1100 1300
2022 1300 1000 1200 1500
2023 1300 1200 1000  
select year, (coalesce(q1,0)+coalesce(q2,0)+coalesce(q3,0)+coalesce(q4,0))/(sign(coalesce(q1,0))+sign(coalesce(q2,0))+sign(coalesce(q3,0))+sign(coalesce(q4,0))) as average
from sales
order by 1