반응형
잘나가는 신제품, 반응이 좋은 신제품을 알아보고 싶을 때
각 SKU 별 상품등록 후 최초 30일간의 판매 데이터를 보고 파악할 수 있다.
아래 캡쳐본 같은 형식의 데이터를 뽑아보기 위해 쿼리문을 작성했다.
쿼리문 )
SELECT
it.s2_product_code AS SKU
,it.it_name AS product_name
,it_time AS reg_date
,TO_CHAR(SUM(ct.ct_qty) , '999,999,999') AS first_30days_od_qty
,TO_CHAR(SUM(ct.ct_price * ct.ct_qty), '999,999,999.99' ) AS first_30days_od_price
FROM shop_order AS od JOIN shop_cart AS ct
ON od.od_id=ct.od_id
LEFT JOIN shop_item AS it
ON ct.s2_product_code=it.s2_product_code
WHERE it.it_id != ''
AND left(od.od_receipt_time, 10) BETWEEN it_time AND it_time+30 -- 결제 일시 _상품등록 후 최초 30일동안의 결제
AND left(it_time,10) BETWEEN '2021-01-01' AND '2021-12-31' -- 상품등록 일시
AND ct.ct_status IN ('완료','입금','배송','준비')
AND it.s2_product_code NOT LIKE '%freegift%'
GROUP BY it.s2_product_code,it.it_name, it_time
ORDER BY first_30days_od_price desc
limit 300
왜 order, cart, item 테이블을 JOIN 했는지
left 함수는 왼쪽에서 부터 단어 몇개까지만 출력하겠다는 함수
ex) left ( 가나다라마바사, 3 ) 의 결과는 가나다
Redshift 화면 )
최근 3개월 동안 등록한 상품만 보고 싶다면
WHERE 절 에서 it_time (상품등록 일시) 을 최근 3개월로 BETWEEN 에 날짜 조건 걸어 주면 되고
상품등록 후 최초 30일 외에
상품등록 후 최초 7일 , 60일, 90일 등을 보고 싶다면
WHERE 절 에서 od_receipt_time (결제일) BETWEEN 조건에서 수정해 주면 된다
상품등록 후 최초 7일동안의 결제 데이터 보려면
EX) BETWEEN it_time AND it_time + 7
*참고 : 이 글은 AWS Redshift PL/pgSQL 사용한 쿼리문 입니다
'IT > SQL' 카테고리의 다른 글
[SQL 예문] SQL 연습하기 2 (기초 쿼리문) (0) | 2022.03.24 |
---|---|
[SQL 예문] SQL 연습하기 1 (기초 쿼리문) (0) | 2022.03.24 |
[SQL 예문] 브랜드별 매출 국가 순위 TOP 10 (ft. 서브쿼리, Round_number() Over () ) (0) | 2022.03.18 |
[SQL 예문] 브랜드별 판매수량, 금액 구하기 (feat. JOIN) (0) | 2022.03.18 |
[SQL 함수] RANK() OVER (Partition by _ Order by _ ) (0) | 2022.03.14 |
댓글