TIL - 250222

오정수·2025년 2월 22일

TIL

목록 보기
55/78

리뷰 : 간단하게 각 상태별 변화를 CASE WHEN을 통해서 변경해주면 된다. 단, 여기서 중요한 것은 FULL OUTER JOIN으로 테이블을 병합해야 한다는 것. 오늘 처음 OUTER JOIN을 썼다. RIGHT OUTER JOIN, LEFT OUTER JOIN, FULL OUTER JOIN을 상황에 따라 잘 사용하자.

URL : https://datalemur.com/questions/updated-status

SELECT 
  user_id
  ,CASE
    WHEN status IS NULL THEN 'NEW' 
    WHEN status = 'NEW' AND paid IS NULL THEN 'CHURN'
    WHEN status = 'NEW' AND paid IS NOT NULL THEN 'EXISTING'
    WHEN status = 'EXISTING' AND paid IS NULL THEN 'CHURN'
    WHEN status = 'EXISTING' AND paid IS NOT NULL THEN 'EXISTING'
    WHEN status = 'CHURN' AND paid IS NULL THEN 'CHURN'
    WHEN status = 'CHURN' AND paid IS NOT NULL THEN 'RESURRECT'
    WHEN status = 'RESURRECT' AND paid IS NULL THEN 'CHURN'
    WHEN status = 'RESURRECT' AND paid IS NOT NULL THEN 'EXISTING'
    END new_status
FROM advertiser
FULL OUTER JOIN daily_pay
USING(user_id)
ORDER BY 1
;
profile
안녕하세요 오정수입니다

0개의 댓글