본문 바로가기

Study/데이터 분석을 위한 SQL 레시피

[빅쿼리(BigQuery) - SQL] 결손 값을 디폴트 값으로 대치하기(COALESCE 함수)

 결손 값을 디폴트 값으로 대치하기(COALESCE 함수)

 

 

문자열 또는 숫자를 다룰 때는 중간에 NULL이 들어있는 경우를 주의해야 한다. NULL과 문자열을 결합하면 NULL이 되며, NULL과 숫자를 사칙 연산해도 NULL이 된다. 처리 대상인 데이터가 우리가 원하는 형태가 아닐 경우에는 반드시 데이터를 가공해야 한다.

 

구매액과 NULL을 포함하는 쿠폰 금액이 저장된 테이블이 있을 때, 다음 코드는 쿠폰으로 할인했을 때의 매출 금액을 구하는 쿼리이다.

 

 

 

 

 

 

 

# discount_price1은 price에서 coupon을 그대로 뺀 값이다. 따라서 coupon이 NULL 레코드라면 NULL이 된다. discount_price2는 coupon이 NULL일 때 COALESCE 함수를 사용해 0으로 대치하므로, coupon을 사용하지 않은 경우에도 제대로 된 값이 계산된다.

 

# COALESCE 함수의 자세한 설명은 https://cloud.google.com/bigquery/docs/reference/standard-sql/conditional_expressions?hl=ko#coalesce 에서 찾아볼 수 있다.