|
|
@@ -140,3 +140,154 @@ FROM (
|
|
|
ORDER BY SELF_YN DESC, BRAND_ENM
|
|
|
;
|
|
|
|
|
|
+-- 주문통계 > 카테고리별주문
|
|
|
+SELECT A.ITEMKIND_CD
|
|
|
+ , SUBSTRING_INDEX(T4.FULL_CATE_NM, ' > ', 1) AS CATE_NM1 -- 대분류
|
|
|
+ , SUBSTRING_INDEX(SUBSTRING(T4.FULL_CATE_NM, INSTR(SUBSTRING_INDEX(T4.FULL_CATE_NM, ' > ', 2), ' > ') + 3), ' > ', 1) AS CATE_NM2 -- 중분류
|
|
|
+ , SUBSTRING_INDEX(T4.FULL_CATE_NM, ' > ', -1) AS CATE_NM3 -- 소분류
|
|
|
+ , SUM(A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT - A.CNCL_AMT - A.RTN_AMT) AS TOT_AMT -- 총매출
|
|
|
+ , SUM(A.SELF_AMT + A.CHANNEL_AMT) AS SELFMALL_AMT -- 자사몰매출
|
|
|
+ , SUM(A.EXTMALL_AMT) AS EXTMALL_AMT -- 제휴몰매출
|
|
|
+FROM TB_STAT_ORD_DAY A, TB_ITEMKIND_CATE TC, TB_CATE_4SRCH T4
|
|
|
+WHERE A.ITEMKIND_CD = TC.ITEMKIND_CD
|
|
|
+ AND TC.CATE_NO = T4.LEAF_CATE_NO
|
|
|
+ AND A.DAY >= DATE_FORMAT('20210901', '%Y%m%d')
|
|
|
+ AND A.DAY <= DATE_FORMAT('20210906', '%Y%m%d')
|
|
|
+ AND (A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT - A.CNCL_AMT - A.RTN_AMT) > 0
|
|
|
+ -- AND A.FRONT_GB IN('P','M','A') -- 디바이스
|
|
|
+ -- AND A.EXTMALL_ID IN ('') -- 제휴몰
|
|
|
+ -- AND A.SUPPLY_COMP_CD IN () -- 공급처
|
|
|
+ -- AND A.BRAND_CD IN() -- 브랜드
|
|
|
+GROUP BY A.ITEMKIND_CD, T4.FULL_CATE_NM
|
|
|
+;
|
|
|
+
|
|
|
+-- 주문통계 > 카테고리별주문 > 카테고리판매상품현황
|
|
|
+
|
|
|
+SELECT
|
|
|
+ C.BRAND_ENM
|
|
|
+ , A.GOODS_CD
|
|
|
+ , B.GOODS_NM
|
|
|
+ , SUM(A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT - A.CNCL_AMT - A.RTN_AMT) AS TOT_AMT -- 총매출
|
|
|
+ , SUM(A.SELL_QTY) AS SELL_QTY -- 판매수량
|
|
|
+ , SUM(A.ORD_CUST) AS ORD_CUST -- 구매자수
|
|
|
+FROM TB_STAT_ORD_DAY A, TB_GOODS B, TB_BRAND C
|
|
|
+WHERE A.GOODS_CD = B.GOODS_CD
|
|
|
+ AND A.BRAND_CD = C.BRAND_CD
|
|
|
+ AND A.ITEMKIND_CD = '02090101M'
|
|
|
+ AND A.DAY >= DATE_FORMAT('20210901', '%Y%m%d')
|
|
|
+ AND A.DAY <= DATE_FORMAT('20210906', '%Y%m%d')
|
|
|
+ AND (A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT - A.CNCL_AMT - A.RTN_AMT) > 0
|
|
|
+GROUP BY C.BRAND_ENM, A.GOODS_CD, B.GOODS_NM
|
|
|
+;
|
|
|
+
|
|
|
+
|
|
|
+-- 주문통계 > 카테고리별주문
|
|
|
+SELECT
|
|
|
+ DATE_FORMAT(DAY, '%m-%d') AS DAY
|
|
|
+ , SUM(A.CNCL_AMT + A.RTN_AMT + A.CHG_DELV_FEE) AS CLM_AMT -- 클레임액
|
|
|
+ , SUM(A.CNCL_QTY + A.RTN_QTY + A.CHG_QTY) AS CLM_QTY -- 클레임수
|
|
|
+ , ROUND(FLOOR(SUM(A.CNCL_AMT + A.RTN_AMT + A.CHG_DELV_FEE) / SUM(A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT) * 100 * 10) / 10, 1) AS AMT_RATE
|
|
|
+ , ROUND(FLOOR(SUM(A.CNCL_QTY + A.RTN_QTY + A.CHG_QTY) / SUM(A.SELL_QTY) * 100 * 10) / 10, 1) AS CLM_RATE
|
|
|
+ , SUM(A.CNCL_QTY) AS CNCL_QTY -- 취소수
|
|
|
+ , SUM(A.CNCL_AMT) AS CNCL_AMT -- 취소액
|
|
|
+ , SUM(A.RTN_QTY) AS RTN_QTY -- 반품수
|
|
|
+ , SUM(A.RTN_AMT) AS RTN_AMT -- 반품액
|
|
|
+ , SUM(A.CHG_QTY) AS CHG_QTY -- 교환수
|
|
|
+ , SUM(A.CHG_DELV_FEE) AS CHG_DELV_FEE -- 교환배송비
|
|
|
+FROM TB_STAT_ORD_DAY A
|
|
|
+WHERE A.DAY >= DATE_FORMAT('20210901', '%Y%m%d')
|
|
|
+ AND A.DAY <= DATE_FORMAT('20210906', '%Y%m%d')
|
|
|
+ -- AND A.FRONT_GB IN('P','M') -- 디바이스
|
|
|
+ -- AND A.EXTMALL_ID IN ('') -- 제휴몰
|
|
|
+ -- AND A.SUPPLY_COMP_CD IN () -- 공급처
|
|
|
+ -- AND A.AF_LINK_CD IN('AF001') -- 채널
|
|
|
+ -- AND A.BRAND_CD IN() -- 브랜드
|
|
|
+ -- AND A.ITEMKIND_CD IN() -- 카테고리
|
|
|
+GROUP BY DATE_FORMAT(DAY, '%m-%d')
|
|
|
+;
|
|
|
+
|
|
|
+-- 주문통계 > 베스트상품통계
|
|
|
+SELECT
|
|
|
+ (SELECT SUBSTRING_INDEX(SYS_IMG_NM , '/', 2) FROM TB_GOODS_IMG X WHERE X.GOODS_CD = B.GOODS_CD AND X.DEFAULT_IMG_YN = 'Y' LIMIT 1) AS SYS_IMG_URL -- 상품이미지
|
|
|
+ , C.BRAND_ENM -- 브랜드명
|
|
|
+ , A.GOODS_CD -- 상품코드
|
|
|
+ , B.GOODS_NM -- 상품명
|
|
|
+ , CASE WHEN A.DISTRIBUTION_GB = 'WMS' THEN '위탁' ELSE '입점' END AS DISTRIBUTION_GB -- 구분
|
|
|
+ , B.CURR_PRICE -- 판매가
|
|
|
+ , SUM(A.SELL_QTY - A.CNCL_QTY - A.RTN_QTY) AS SELL_QTY -- 판매수
|
|
|
+ , SUM(A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT - A.CNCL_AMT - A.RTN_AMT) AS TOT_AMT -- 매출액
|
|
|
+ , SUM(D.STOCK_QTY) AS STOCK_QTY -- 현재고수량
|
|
|
+FROM TB_STAT_ORD_DAY A, TB_GOODS B, TB_BRAND C, TB_GOODS_STOCK D
|
|
|
+WHERE A.GOODS_CD = B.GOODS_CD
|
|
|
+ AND A.BRAND_CD = C.BRAND_CD
|
|
|
+ AND A.GOODS_CD = D.GOODS_CD
|
|
|
+ AND A.DAY >= DATE_FORMAT('20210901', '%Y%m%d')
|
|
|
+ AND A.DAY <= DATE_FORMAT('20210906', '%Y%m%d')
|
|
|
+ -- AND A.FRONT_GB IN('P','M') -- 디바이스
|
|
|
+ -- AND A.EXTMALL_ID IN ('') -- 제휴몰
|
|
|
+ -- AND A.DISTRIBUTION_GB IN ('WMS', 'SCM') -- 물류구분
|
|
|
+ -- AND A.FORMAL_GB IN('G009_10','G009_20') -- 정상/이월구분
|
|
|
+ -- AND A.SEX_GB IN('G007_M','G007_F','G007_X') -- 성별
|
|
|
+ -- AND A.AGE IN('10','20','30','40','X')
|
|
|
+ -- AND A.BRAND_CD IN() -- 브랜드
|
|
|
+ -- AND A.ITEMKIND_CD IN() -- 카테고리
|
|
|
+ -- AND A.AF_LINK_CD IN('AF001') -- 채널
|
|
|
+GROUP BY C.BRAND_ENM, A.GOODS_CD, B.GOODS_NM, A.DISTRIBUTION_GB, B.CURR_PRICE
|
|
|
+ORDER BY TOT_AMT DESC
|
|
|
+;
|
|
|
+
|
|
|
+-- 주문통계 > 시간대별주문
|
|
|
+WITH TAB AS (
|
|
|
+ SELECT
|
|
|
+ DATE_FORMAT(DAY_TIME, '%H') AS HOUR
|
|
|
+ , SUM(ORD_AMT) AS ORD_AMT -- 매출
|
|
|
+ , SUM(ORD_CUST) AS ORD_CUST -- 주문자수
|
|
|
+ , SUM(ORD_CNT) AS ORD_CNT -- 주문수
|
|
|
+ , SUM(SELL_QTY) AS SELL_QTY -- 판매수
|
|
|
+ , FLOOR(AVG(CUST_PRICE)) AS CUST_PRICE -- 객단가
|
|
|
+ , SUM(CNCL_QTY) AS CNCL_QTY -- 취반품개수
|
|
|
+ , SUM(CNCL_AMT) AS CNCL_AMT -- 취반품액
|
|
|
+ FROM TB_STAT_ORD_TIME A
|
|
|
+ WHERE 1=1
|
|
|
+ -- 직전동기간
|
|
|
+ -- AND A.DAY_TIME >= DATE_ADD(DATE_FORMAT('20210906', '%Y%m%d'), INTERVAL (DATE_FORMAT('20210901', '%Y%m%d') - DATE_FORMAT('20210906', '%Y%m%d')) -1 DAY)
|
|
|
+ -- AND A.DAY_TIME < DATE_ADD(DATE_FORMAT('20210901', '%Y%m%d'), INTERVAL (DATE_FORMAT('20210901', '%Y%m%d') - DATE_ADD(DATE_FORMAT('20210906', '%Y%m%d'), INTERVAL 1 DAY)) * -1 DAY)
|
|
|
+ -- 전년동기간
|
|
|
+ -- AND A.DAY_TIME >= DATE_ADD(DATE_FORMAT('20210901', '%Y%m%d'), INTERVAL -1 YEAR )
|
|
|
+ -- AND A.DAY_TIME < DATE_ADD(DATE_ADD(DATE_FORMAT('20210906', '%Y%m%d'), INTERVAL 1 DAY), INTERVAL -1 YEAR )
|
|
|
+ -- 직접선택
|
|
|
+ AND A.DAY_TIME >= DATE_ADD(DATE_FORMAT('20210801', '%Y%m%d'), INTERVAL -1 YEAR )
|
|
|
+ AND A.DAY_TIME < DATE_ADD(DATE_ADD(DATE_FORMAT('20210806', '%Y%m%d'), INTERVAL 1 DAY), INTERVAL -1 YEAR )
|
|
|
+ -- AND A.SHOT_DELV_YN = 'Y' -- 총알배송
|
|
|
+ GROUP BY HOUR
|
|
|
+)
|
|
|
+SELECT
|
|
|
+ A.HOUR
|
|
|
+ , A.ORD_AMT -- 매출
|
|
|
+ , B.ORD_AMT AS COMP_ORD_AMT -- 비교
|
|
|
+ , ROUND(FLOOR(A.ORD_AMT / B.ORD_AMT * 100 * 100) / 100, 2) AS CPL_RATE -- 달성율
|
|
|
+ , A.ORD_CUST -- 주문자수
|
|
|
+ , A.ORD_CNT -- 주문수
|
|
|
+ , A.SELL_QTY -- 판매수
|
|
|
+ , A.CUST_PRICE -- 객단가
|
|
|
+ , A.CNCL_QTY -- 취반품개수
|
|
|
+ , A.CNCL_AMT -- 취반품액
|
|
|
+FROM (
|
|
|
+ SELECT
|
|
|
+ DATE_FORMAT(DAY_TIME, '%H') AS HOUR
|
|
|
+ , SUM(ORD_AMT) AS ORD_AMT -- 매출
|
|
|
+ , SUM(ORD_CUST) AS ORD_CUST -- 주문자수
|
|
|
+ , SUM(ORD_CNT) AS ORD_CNT -- 주문수
|
|
|
+ , SUM(SELL_QTY) AS SELL_QTY -- 판매수
|
|
|
+ , FLOOR(AVG(CUST_PRICE)) AS CUST_PRICE -- 객단가
|
|
|
+ , SUM(CNCL_QTY) AS CNCL_QTY -- 취반품개수
|
|
|
+ , SUM(CNCL_AMT) AS CNCL_AMT -- 취반품액
|
|
|
+ FROM TB_STAT_ORD_TIME A
|
|
|
+ WHERE A.DAY_TIME >= DATE_FORMAT('20210901', '%Y%m%d')
|
|
|
+ AND A.DAY_TIME < DATE_ADD(DATE_FORMAT('20210906', '%Y%m%d'), INTERVAL 1 DAY)
|
|
|
+ -- AND A.SHOT_DELV_YN = 'Y' -- 총알배송
|
|
|
+ GROUP BY HOUR
|
|
|
+) A
|
|
|
+LEFT OUTER JOIN TAB B ON A.HOUR = B.HOUR
|
|
|
+ORDER BY A.HOUR
|
|
|
+;
|