swkim %!s(int64=4) %!d(string=hai) anos
pai
achega
8ed79f3dcc
Modificáronse 1 ficheiros con 18 adicións e 44 borrados
  1. 18 44
      산출물/4.구축/통계/회원통계.sql

+ 18 - 44
산출물/4.구축/통계/회원통계.sql

@@ -1,38 +1,14 @@
 -- 회원통계 > 가입통계
 SELECT
-    'TOTAL' AS TERM
-    , DATE_FORMAT(DAY, '%Y-%m-%d') AS DAY
-    , SUM(ALL_CNT) AS ALL_CNT
-    , SUM(REAL_CNT) AS REAL_CNT
-    , SUM(DORM_CNT) AS DORM_CNT
-    , SUM(VIP_CNT) AS VIP_CNT
-    , SUM(GOLD_CNT) AS GOLD_CNT
-    , SUM(SILVER_CNT) AS SILVER_CNT
-    , SUM(BRONZE_CNT) AS BRONZE_CNT
-    , SUM(WELCOME_CNT) AS WELCOME_CNT
-    , SUM(JOIN_CNT) AS JOIN_CNT
-    , SUM(DR_JOIN_CNT) AS DR_JOIN_CNT
-    , SUM(AF_JOIN_CNT) AS AF_JOIN_CNT
-    , SUM(CHG_DORM_CNT) AS CHG_DORM_CNT
-    , SUM(RM_DORM_CNT) AS RM_DORM_CNT
-    , SUM(SECEED_CNT) AS SECEED_CNT
-FROM TB_STAT_CUST
-WHERE DAY = DATE_FORMAT('20210731', '%Y%m%d') -- 마지막날짜변수
-    AND SEX_GB IN('G007_M','G007_F','G007_X') -- 성별
-    AND AGE IN('10','20','30','40','X')
-GROUP BY DAY
-UNION ALL
-SELECT
-    'LIST' AS TERM
-    , DATE_FORMAT(DAY, '%Y-%m-%d') AS DAY
-    , SUM(ALL_CNT) AS ALL_CNT
-    , SUM(REAL_CNT) AS REAL_CNT
-    , SUM(DORM_CNT) AS DORM_CNT
-    , SUM(VIP_CNT) AS VIP_CNT
-    , SUM(GOLD_CNT) AS GOLD_CNT
-    , SUM(SILVER_CNT) AS SILVER_CNT
-    , SUM(BRONZE_CNT) AS BRONZE_CNT
-    , SUM(WELCOME_CNT) AS WELCOME_CNT
+    DATE_FORMAT(DAY,'%Y-%m-%d')                       AS DAY
+    , MAX(ALL_CNT) AS ALL_CNT
+    , MAX(REAL_CNT) AS REAL_CNT
+    , MAX(DORM_CNT) AS DORM_CNT
+    , MAX(VIP_CNT) AS VIP_CNT
+    , MAX(GOLD_CNT) AS GOLD_CNT
+    , MAX(SILVER_CNT) AS SILVER_CNT
+    , MAX(BRONZE_CNT) AS BRONZE_CNT
+    , MAX(WELCOME_CNT) AS WELCOME_CNT
     , SUM(JOIN_CNT) AS JOIN_CNT
     , SUM(DR_JOIN_CNT) AS DR_JOIN_CNT
     , SUM(AF_JOIN_CNT) AS AF_JOIN_CNT
@@ -44,10 +20,8 @@ WHERE DAY >= DATE_FORMAT('20210601', '%Y%m%d')
     AND DAY <= DATE_FORMAT(CONCAT('20210930','235959'), '%Y%m%d%h%i%s')
     AND SEX_GB IN('G007_M','G007_F','G007_X') -- 성별
     AND AGE IN('10','20','30','40','X')
-GROUP BY DAY
-ORDER BY TERM DESC, DAY DESC
-;
-
+GROUP  BY DATE_FORMAT(DAY,'%Y-%m-%d')
+ORDER BY DAY DESC
 
 -- 회원통계 > 등급별주문현황
 SELECT
@@ -475,7 +449,7 @@ FROM (
     FROM TB_CUSTOMER
     WHERE CUST_NO > 0
         AND CUST_STAT = 'G104_10'
-        AND LOGIN_LDT > DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY ), '%Y%m%d%H%i%s') -- now() 수정 : 조회시점의 시간까지만. ex) 2019년9월25일15시 조회 -> 20210925150000
+        AND LOGIN_LDT > DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -1 DAY ), '%Y%m%d%H%i%s') -- now() 수정 : 조회시점의 시간까지만. ex) 2019년9월25일15시 조회 -> 20210925150000
     -- 9개월
     UNION ALL
     SELECT COUNT(1) AS CNT
@@ -483,8 +457,8 @@ FROM (
     FROM TB_CUSTOMER
     WHERE CUST_NO > 0
         AND CUST_STAT = 'G104_10'
-        AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -3 MONTH ), '%Y%m%d%H%i%s')
-        AND LOGIN_LDT < DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY ), '%Y%m%d%H%i%s')
+        AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -3 MONTH ), '%Y%m%d%H%i%s')
+        AND LOGIN_LDT < DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -1 DAY ), '%Y%m%d%H%i%s')
     -- 6개월
     UNION ALL
     SELECT COUNT(1) AS CNT
@@ -492,8 +466,8 @@ FROM (
     FROM TB_CUSTOMER
     WHERE CUST_NO > 0
         AND CUST_STAT = 'G104_10'
-        AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -6 MONTH ), '%Y%m%d%H%i%s')
-        AND LOGIN_LDT < DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -3 MONTH ), '%Y%m%d%H%i%s')
+        AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -6 MONTH ), '%Y%m%d%H%i%s')
+        AND LOGIN_LDT < DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -3 MONTH ), '%Y%m%d%H%i%s')
     -- 3개월
     UNION ALL
     SELECT COUNT(1) AS CNT
@@ -501,7 +475,7 @@ FROM (
     FROM TB_CUSTOMER
     WHERE CUST_NO > 0
         AND CUST_STAT = 'G104_10'
-        AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -9 MONTH ), '%Y%m%d%H%i%s')
-        AND LOGIN_LDT < DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -6 MONTH ), '%Y%m%d%H%i%s')
+        AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -9 MONTH ), '%Y%m%d%H%i%s')
+        AND LOGIN_LDT < DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -6 MONTH ), '%Y%m%d%H%i%s')
 ) Z
 ;