반응형
PostgreSQL case when 활용, 신규주문 재주문 구분해주기 - 레드시프트
select *
, (case when o_rn = 1 then 1 else 0 end) as new_order -- 해당날짜에 o_rn 이 1이면 1 반환
, (case when o_rn = 1 then 0 else 1 end) as re_order -- 해당날짜에 o_rn 이 1이 아니면 1 반환
from (서브쿼리 테이블)
select *
, (case when o_rn = 1 then 1 else 0 end) as new_order -- 해당날짜에 o_rn 이 1이면 1 반환
, (case when o_rn = 1 then 0 else 1 end) as re_order -- 해당날짜에 o_rn 이 1이 아니면 1 반환
from
(select
mb_id
, od_id
, od_receipt_time
, row_number() over (partition by mb_id order by od_receipt_time) as o_rn
, od_tag
from "dev"."order")s1
group by s1.mb_id, s1.od_id, s1.od_receipt_time, s1.o_rn, s1.od_tag
AWS Redshift query editor v2 예시 화면
new_order 컬럼엔 첫 주문이면 1 표기
re_order 컬럼엔 재주문 이면 1 표기
되어 있는 것을 예시화면 테이블에서 볼 수 있다
ROW_NUMBER() OVER 함수 사용법은 아래글에서 참고!
'IT > SQL' 카테고리의 다른 글
SQL 기초 쿼리문 예시 3가지 (0) | 2024.02.28 |
---|---|
SQL 데이터 조회 필수 기초 명령어 (0) | 2024.02.28 |
PostgreSQL 특정 문자 기준으로 문자열 자르기 - 레드시프트 (0) | 2023.11.20 |
[SQL] 순위 매기는 함수 row_number (ft. 검색어 순위 추출) (0) | 2022.12.20 |
[SQL, QuickSight] 브랜드별 일별 매출 쿼리문 (ft. 날짜 필터) (0) | 2022.09.23 |
댓글