swkim 4 tahun lalu
induk
melakukan
fc42fe3e58

+ 67 - 8
산출물/4.구축/통계/결제통계.sql

@@ -45,7 +45,7 @@ WHERE PAY_DT >= DATE_FORMAT('20180101', '%Y%m%d')
 GROUP BY TERM, PAY_MEANS, PG_GB, COM_CARD_CD
 ;
 
--- 배치
+-- 결제통계 결제수단별통계 화변
 WITH TAB AS (
     SELECT
         DATE_FORMAT(DAY, '%Y-%m-%d') AS TERM
@@ -61,11 +61,14 @@ WITH TAB AS (
 )
 SELECT
     TERM
-    , SUM(CD_AMT) AS CD_ATM
-    , SUM(AC_AMT) AS AC_AMT
-    , SUM(VA_AMT) AS VA_AMT
-    , SUM(HP_AMT) AS HP_AMT
-    , SUM(CP_AMT) AS CP_AMT
+    , SUM(CD_AMT) AS CD_ATM -- 카드
+    , SUM(AC_AMT) AS AC_AMT -- 실시간계좌이체
+    , SUM(VA_AMT) AS VA_AMT -- 무통장
+    , SUM(HP_AMT) AS HP_AMT -- 휴대폰
+    , SUM(CP_AMT) AS CP_AMT -- PG쿠폰
+    , SUM(NPAY_AMT) AS NPAY_AMT -- 네이버페이
+    , SUM(PAYCO_AMT) AS PAYCO_AMT -- 페이코
+    , SUM(KAKAO_AMT) AS KAKAO_AMT -- 카카오
 FROM (
     SELECT
         TERM
@@ -74,6 +77,9 @@ FROM (
         , CASE WHEN PAY_MEANS = 'G014_20' THEN PAY_AMT ELSE 0 END AS VA_AMT
         , CASE WHEN PAY_MEANS = 'G014_60' THEN PAY_AMT ELSE 0 END AS HP_AMT
         , CASE WHEN PAY_MEANS = 'G014_50' THEN PAY_AMT ELSE 0 END AS CP_AMT
+        , CASE WHEN PAY_MEANS = 'NAVER' THEN PAY_AMT ELSE 0 END AS NPAY_AMT
+        , CASE WHEN PAY_MEANS = 'PAYCO' THEN PAY_AMT ELSE 0 END AS PAYCO_AMT
+        , CASE WHEN PAY_MEANS = 'KAKAO' THEN PAY_AMT ELSE 0 END AS KAKAO_AMT
     FROM (
          SELECT
             TERM
@@ -114,6 +120,30 @@ FROM (
         FROM TAB
         WHERE PAY_MEANS = 'G014_50'
         GROUP BY TERM
+        UNION ALL
+        SELECT
+            TERM
+            , PG_GB AS PAY_MEANS
+            , SUM(PAY_AMT) AS PAY_AMT
+        FROM TAB
+        WHERE PG_GB = 'NAVER'
+        GROUP BY TERM
+        UNION ALL
+        SELECT
+            TERM
+            , PG_GB AS PAY_MEANS
+            , SUM(PAY_AMT) AS PAY_AMT
+        FROM TAB
+        WHERE PG_GB = 'PAYCO'
+        GROUP BY TERM
+        UNION ALL
+        SELECT
+            TERM
+            , PG_GB AS PAY_MEANS
+            , SUM(PAY_AMT) AS PAY_AMT
+        FROM TAB
+        WHERE PG_GB = 'KAKAO'
+        GROUP BY TERM
     ) Z
 ) Z
 GROUP BY TERM
@@ -122,6 +152,7 @@ ORDER BY TERM
 
 
 -- 실시간
+/*
 WITH TAB AS (
     SELECT
         DATE_FORMAT(PAY_DT, '%Y-%m-%d') AS TERM
@@ -197,6 +228,7 @@ FROM (
 ) Z
 GROUP BY TERM
 ORDER BY TERM
+*/
 ;
 
 
@@ -249,7 +281,7 @@ WITH TAB_PNT AS (
 , PNT_USE AS (
     SELECT
         B.TERM
-        , SUM(A.PNT_AMT) AS VAL
+        , SUM(A.PNT_AMT * -1) AS VAL
         , B.OCCUR_GB
         , '3' AS GB
     FROM TB_CUST_POINT_HST A, TAB_PNT B
@@ -303,7 +335,7 @@ WITH TAB_PNT AS (
 , GIFT_USE AS (
     SELECT
         B.TERM
-        , SUM(A.GFCD_AMT) AS VAL
+        , SUM(A.GFCD_AMT * -1) AS VAL
         , B.OCCUR_GB
         , '6' AS GB
     FROM TB_CUST_GIFTCARD_HST A, TAB_GIFT B
@@ -345,3 +377,30 @@ GROUP BY TERM, OCCUR_GB
 ;
 
 
+-- 결제통계 > 부결제수단통계화면
+SELECT
+    DATE_FORMAT(A.DAY, '%m%d') AS TERM
+    , SUM(A.PNT_GIVE) AS PNT_GIVE -- 포인트적립액
+    , SUM(A.PNT_ORD_CNT) AS PNT_ORD_CNT -- 포인트사용주문수
+    , SUM(A.PNT_USE) AS PNT_USE -- 포인트사용액
+    , SUM(A.GIFT_REG_CNT) AS GIFT_REG_CNT -- 상품권등록매수
+    , SUM(A.GIFT_ORD_CNT) AS GIFT_ORD_CNT -- 상품권주문수
+    , SUM(A.GIFT_USE) AS GIFT_USE -- 상품권사용액
+FROM TB_STAT_SUB_PAY A
+WHERE DAY >= DATE_FORMAT('20200701', '%Y%m%d')
+    AND DAY <= DATE_FORMAT(CONCAT('20210731', '235959'), '%Y%m%d%H%i%s')
+GROUP BY TERM
+;
+
+-- 결제통계 > 부결제수단통계화면 > 현잔액
+SELECT
+    SUM(RM_PNT_AMT) AS RM_PNT_AMT -- 포인트잔액
+FROM TB_CUST_POINT A
+WHERE A.EXP_CMP_DT IS NULL
+;
+
+SELECT
+    SUM(RM_GFCD_AMT) AS RM_GFCD_AMT -- 상품권잔액
+FROM TB_CUST_GIFTCARD A
+WHERE DATE_FORMAT(USE_EXP_DATE, '%Y%m%d') < NOW()
+;

+ 151 - 0
산출물/4.구축/통계/주문통계_화면.sql

@@ -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
+;

+ 0 - 9
산출물/4.구축/통계/프로모션통계.sql

@@ -496,12 +496,3 @@ FROM (
 GROUP BY DISTRIBUTION_GB, GOODS_CD, GOODS_NM
 ;
 
--- 소원씨 기획전 상세 페이지에서 planDtlSq 파라메터 추가 요청
-
-SELECT * FROM TB_COMMON_CODE WHERE CD_GB = 'G065';
-SELECT * FROM TB_TMTB;
-SELECT * FROM TB_TMTB_BURDEN;
-SELECT * FROM TB_ORDER_DETAIL WHERE PLAN_DTL_SQ > 0;
-SELECT * FROM TB_CART WHERE PLAN_DTL_SQ > 0;
-SELECT * FROM TB_CART_HST WHERE PLAN_DTL_SQ > 0;
-SELECT * FROM TB_GOODS;

+ 0 - 9
산출물/4.구축/통계/회원통계.sql

@@ -1,12 +1,3 @@
-SELECT * FROM TB_CUSTOMER;
-
-SELECT COUNT(1) FROM TB_CUSTOMER WHERE AF_LINK_CD IS NULL;
-
-SELECT * FROM TB_AF_LINK;
-
-
-
-SELECT * FROM TB_CUSTOMER;
 
 
 WITH TAB_ALL AS (