결손 값을 디폴트 값으로 대치하기(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 에서 찾아볼 수 있다.
'Study > 데이터 분석을 위한 SQL 레시피' 카테고리의 다른 글
[빅쿼리(BigQuery) - SQL] 여러 개의 값 비교하기(SIGN 함수, greatest 함수, least 함수, 사칙 연산자) (0) | 2023.02.09 |
---|---|
[빅쿼리(BigQuery) - SQL] 문자열 연결하기(CONCAT 함수) (0) | 2023.02.09 |
[빅쿼리(BigQuery) - SQL] 날짜와 타임스탬프 다루기(날짜/시간 함수, 날짜 자료형, 타임스탬프 자료형, 문자열 함수) (0) | 2023.02.08 |
[빅쿼리(BigQuery) - SQL] 문자열을 배열로 분해하기(SPLIT 함수) (0) | 2023.02.08 |
[빅쿼리(BigQuery) - SQL] URL에서 요소 추출하기(URL 함수, 정규 표현식) (0) | 2023.02.07 |