본문 바로가기
IT/SQL

[SQL 예문] 상품등록 후 최초 30일간 판매 데이터 (반응 좋은 신제품 알아보기)

by marketinkerbell 2022. 3. 21.
반응형

 

 

 

잘나가는 신제품반응이 좋은 신제품을 알아보고 싶을 때 

 

각 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

 

 

TO_CHAR 사용법

JOIN 사용법

왜 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 사용한 쿼리문 입니다

 

 

 

 

 

 

댓글