먼저 Dataset 코드입니다.
DROP TABLE IF EXISTS purchase_log_with_coupon;
CREATE TABLE purchase_log_with_coupon (
purchase_id varchar(255)
, amount integer
, coupon integer
);
INSERT INTO purchase_log_with_coupon
VALUES
('10001', 3280, NULL)
, ('10002', 4650, 500)
, ('10003', 3870, NULL)
, ('10004', 2670, 400)
, ('10005', 3219, NULL)
, ('10006', 9853, 200)
;
결손값 처리(COALESCE)
결손값(null)값 처리에 쓰는 함수는 COALESCE가 있습니다. 대상이 null이 아니라면 그대로 출력하고 그렇지 않으면 ex2,..를 출력합니다.
COALESCE(대상, ex1, ex2...)
Amount에서 쿠폰가격을 뺀 가격을 구해보겠습니다. 쿠폰의 null값을 0으로 치환한다음에 계산합니다.
select
purchase_id
,amount
,coupon
,amount - coupon as discount_amount1
,amount- coalesce(coupon, 0 ) as discount_amount2
from
purchase_log_with_coupon
![[PostgreSQL] NULL값 처리 (COALESCE, NULLIF) 0](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
cf) NULLIF(ex1, ex2)
ex1과 ex2가 같으면 NULL값출력하고 그렇지 않으면 ex1값을 출력한다.
select purchase_id
,amount
,coupon
,amount- coalesce(coupon, 0 ) as discount_amount
,nullif(amount, amount- coalesce(coupon, 0 ))
from purchase_log_with_coupon;
https://link.coupang.com/a/cmwWb3
주연테크 FHD 100Hz 화이트 모니터 - 게이밍 모니터 | 쿠팡
현재 별점 4.8점, 리뷰 366개를 가진 주연테크 FHD 100Hz 화이트 모니터! 지금 쿠팡에서 더 저렴하고 다양한 게이밍 모니터 제품들을 확인해보세요.
www.coupang.com
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
728x90
반응형
'SQL & DB > PostgreSQL' 카테고리의 다른 글
[PostgreSQL] 계산 관련 함수(ABS, POWER , SQRT, POINT) (0) | 2021.01.07 |
---|---|
[PostgreSQL] 값 비교(CASE, SIGN, GREATEST, LEAST), 평균값 구하기 (0) | 2021.01.07 |
[PostgreSQL] 날짜 다루기(CURRENT_DATE, CURRENT_TIMESTAMP, CAST, EXTRACT) (0) | 2021.01.06 |
[PostgreSQL] 문자열 다루기(추출/ 분해 / 합치기) (substring, split_part, concat) (0) | 2021.01.06 |
[PostgreSQL] Create / Insert / Select (0) | 2021.01.06 |