diff --git a/src/main/resources/mapper/mysql/stats/stats-mapper.xml b/src/main/resources/mapper/mysql/stats/stats-mapper.xml
index 1fc43be..19788e0 100644
--- a/src/main/resources/mapper/mysql/stats/stats-mapper.xml
+++ b/src/main/resources/mapper/mysql/stats/stats-mapper.xml
@@ -5,317 +5,499 @@
-
-
+ select '전체' AS sumYm
+ , sum(T_SND_CNT) AS sndCnt
+ , sum(T_SUCC_CNT) AS succCnt
+ , sum(T_SUCC_RT) AS succRt
+ , sum(S_SND_CNT) AS sndCntS
+ , sum(S_SUCC_CNT) AS succCntS
+ , sum(S_SUCC_RT) AS succRtS
+ , sum(L_SND_CNT) AS sndCntL
+ , sum(L_SUCC_CNT) AS succCntL
+ , sum(L_SUCC_RT) AS succRtL
+ , sum(M_SND_CNT) AS sndCntM
+ , sum(M_SUCC_CNT) AS succCntM
+ , sum(M_SUCC_RT) AS succRtM
+ , sum(A_SND_CNT) AS sndCntR
+ , sum(A_SUCC_CNT) AS succCntR
+ , sum(A_SUCC_RT) AS succRtR
+ from (
+ SELECT SUM(IFNULL(SND_CNT,0)) AS T_SND_CNT
+ ,SUM(IFNULL(SUCC_CNT,0)) AS T_SUCC_CNT
+ ,ROUND((SUM(IFNULL(SUCC_CNT,0)) / SUM(IFNULL(SND_CNT,0)) * 100), 2) AS T_SUCC_RT
+ , 0 as S_SND_CNT
+ , 0 as S_SUCC_CNT
+ , 0 as S_SUCC_RT
+ , 0 as L_SND_CNT
+ , 0 as L_SUCC_CNT
+ , 0 as L_SUCC_RT
+ , 0 as M_SND_CNT
+ , 0 as M_SUCC_CNT
+ , 0 as M_SUCC_RT
+ , 0 as A_SND_CNT
+ , 0 as A_SUCC_CNT
+ , 0 as A_SUCC_RT
+ FROM hubez_common.EZ_MON_STAT
+ WHERE 1=1
+ AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d')
+ union all
+ SELECT 0 as T_SND_CNT
+ , 0 as T_SUCC_CNT
+ , 0 as T_SUCC_RT
+ , SUM(IFNULL(SND_CNT,0)) AS S_SND_CNT
+ , SUM(IFNULL(SUCC_CNT,0)) AS S_SUCC_CNT
+ , ROUND((SUM(IFNULL(SUCC_CNT,0)) / SUM(IFNULL(SND_CNT,0)) * 100), 2) AS S_SUCC_RT
+ , 0 as L_SND_CNT
+ , 0 as L_SUCC_CNT
+ , 0 as L_SUCC_RT
+ , 0 as M_SND_CNT
+ , 0 as M_SUCC_CNT
+ , 0 as M_SUCC_RT
+ , 0 as A_SND_CNT
+ , 0 as A_SUCC_CNT
+ , 0 as A_SUCC_RT
+ FROM hubez_common.EZ_MON_STAT
+ WHERE 1=1
+ AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d')
+ AND SND_CH_CD = 'SMS'
+ union all
+ SELECT 0 as T_SND_CNT
+ , 0 as T_SUCC_CNT
+ , 0 as T_SUCC_RT
+ , 0 as S_SND_CNT
+ , 0 as S_SUCC_CNT
+ , 0 as S_SUCC_RT
+ , SUM(IFNULL(SND_CNT,0)) AS L_SND_CNT
+ , SUM(IFNULL(SUCC_CNT,0)) AS L_SUCC_CNT
+ , ROUND((SUM(IFNULL(SUCC_CNT,0)) / SUM(IFNULL(SND_CNT,0)) * 100), 2) AS L_SUCC_RT
+ , 0 as M_SND_CNT
+ , 0 as M_SUCC_CNT
+ , 0 as M_SUCC_RT
+ , 0 as A_SND_CNT
+ , 0 as A_SUCC_CNT
+ , 0 as A_SUCC_RT
+ FROM hubez_common.EZ_MON_STAT
+ WHERE 1=1
+ AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d')
+ AND SND_CH_CD = 'LMS'
+ union all
+ SELECT 0 as T_SND_CNT
+ , 0 as T_SUCC_CNT
+ , 0 as T_SUCC_RT
+ , 0 as S_SND_CNT
+ , 0 as S_SUCC_CNT
+ , 0 as S_SUCC_RT
+ , 0 as L_SND_CNT
+ , 0 as L_SUCC_CNT
+ , 0 as L_SUCC_RT
+ , SUM(IFNULL(SND_CNT,0)) AS M_SND_CNT
+ , SUM(IFNULL(SUCC_CNT,0)) AS M_SUCC_CNT
+ , ROUND((SUM(IFNULL(SUCC_CNT,0)) / SUM(IFNULL(SND_CNT,0)) * 100), 2) AS M_SUCC_RT
+ , 0 as A_SND_CNT
+ , 0 as A_SUCC_CNT
+ , 0 as A_SUCC_RT
+ FROM hubez_common.EZ_MON_STAT
+ WHERE 1=1
+ AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d')
+ AND SND_CH_CD = 'MMS'
+ union all
+ SELECT 0 as T_SND_CNT
+ , 0 as T_SUCC_CNT
+ , 0 as T_SUCC_RT
+ , 0 as S_SND_CNT
+ , 0 as S_SUCC_CNT
+ , 0 as S_SUCC_RT
+ , 0 as L_SND_CNT
+ , 0 as L_SUCC_CNT
+ , 0 as L_SUCC_RT
+ , 0 as M_SND_CNT
+ , 0 as M_SUCC_CNT
+ , 0 as M_SUCC_RT
+ , SUM(IFNULL(SND_CNT,0)) AS A_SND_CNT
+ , SUM(IFNULL(SUCC_CNT,0)) AS A_SUCC_CNT
+ , ROUND((SUM(IFNULL(SUCC_CNT,0)) / SUM(IFNULL(SND_CNT,0)) * 100), 2) AS A_SUCC_RT
+ FROM hubez_common.EZ_MON_STAT
+ WHERE 1=1
+ AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d')
+ AND SND_CH_CD = 'ALIMTALK'
+ ) T
+ UNION ALL
+ select DATE_FORMAT(SUM_YM, '%Y-%m-%d') AS sumYm
+ , sum(T_SND_CNT) AS sndCnt
+ , sum(T_SUCC_CNT) AS succCnt
+ , sum(T_SUCC_RT) AS succRt
+ , sum(S_SND_CNT) AS sndCntS
+ , sum(S_SUCC_CNT) AS succCntS
+ , sum(S_SUCC_RT) AS succRtS
+ , sum(L_SND_CNT) AS sndCntL
+ , sum(L_SUCC_CNT) AS succCntL
+ , sum(L_SUCC_RT) AS succRtL
+ , sum(M_SND_CNT) AS sndCntM
+ , sum(M_SUCC_CNT) AS succCntM
+ , sum(M_SUCC_RT) AS succRtM
+ , sum(A_SND_CNT) AS sndCntR
+ , sum(A_SUCC_CNT) AS succCntR
+ , sum(A_SUCC_RT) AS succRtR
+ from (
+ SELECT SUM_YM
+ , SUM(IFNULL(SND_CNT,0)) AS T_SND_CNT
+ ,SUM(IFNULL(SUCC_CNT,0)) AS T_SUCC_CNT
+ ,ROUND((SUM(IFNULL(SUCC_CNT,0)) / SUM(IFNULL(SND_CNT,0)) * 100), 2) AS T_SUCC_RT
+ , 0 as S_SND_CNT
+ , 0 as S_SUCC_CNT
+ , 0 as S_SUCC_RT
+ , 0 as L_SND_CNT
+ , 0 as L_SUCC_CNT
+ , 0 as L_SUCC_RT
+ , 0 as M_SND_CNT
+ , 0 as M_SUCC_CNT
+ , 0 as M_SUCC_RT
+ , 0 as A_SND_CNT
+ , 0 as A_SUCC_CNT
+ , 0 as A_SUCC_RT
+ FROM hubez_common.EZ_MON_STAT
+ WHERE 1=1
+ AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d')
+ GROUP BY SUM_YM
+ union all
+ SELECT SUM_YM
+ , 0 as T_SND_CNT
+ , 0 as T_SUCC_CNT
+ , 0 as T_SUCC_RT
+ , SUM(IFNULL(SND_CNT,0)) AS S_SND_CNT
+ , SUM(IFNULL(SUCC_CNT,0)) AS S_SUCC_CNT
+ , ROUND((SUM(IFNULL(SUCC_CNT,0)) / SUM(IFNULL(SND_CNT,0)) * 100), 2) AS S_SUCC_RT
+ , 0 as L_SND_CNT
+ , 0 as L_SUCC_CNT
+ , 0 as L_SUCC_RT
+ , 0 as M_SND_CNT
+ , 0 as M_SUCC_CNT
+ , 0 as M_SUCC_RT
+ , 0 as A_SND_CNT
+ , 0 as A_SUCC_CNT
+ , 0 as A_SUCC_RT
+ FROM hubez_common.EZ_MON_STAT
+ WHERE 1=1
+ AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d')
+ AND SND_CH_CD = 'SMS'
+ GROUP BY SUM_YM
+ union all
+ SELECT SUM_YM
+ , 0 as T_SND_CNT
+ , 0 as T_SUCC_CNT
+ , 0 as T_SUCC_RT
+ , 0 as S_SND_CNT
+ , 0 as S_SUCC_CNT
+ , 0 as S_SUCC_RT
+ , SUM(IFNULL(SND_CNT,0)) AS L_SND_CNT
+ , SUM(IFNULL(SUCC_CNT,0)) AS L_SUCC_CNT
+ , ROUND((SUM(IFNULL(SUCC_CNT,0)) / SUM(IFNULL(SND_CNT,0)) * 100), 2) AS L_SUCC_RT
+ , 0 as M_SND_CNT
+ , 0 as M_SUCC_CNT
+ , 0 as M_SUCC_RT
+ , 0 as A_SND_CNT
+ , 0 as A_SUCC_CNT
+ , 0 as A_SUCC_RT
+ FROM hubez_common.EZ_MON_STAT
+ WHERE 1=1
+ AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d')
+ AND SND_CH_CD = 'LMS'
+ GROUP BY SUM_YM
+ union all
+ SELECT SUM_YM
+ , 0 as T_SND_CNT
+ , 0 as T_SUCC_CNT
+ , 0 as T_SUCC_RT
+ , 0 as S_SND_CNT
+ , 0 as S_SUCC_CNT
+ , 0 as S_SUCC_RT
+ , 0 as L_SND_CNT
+ , 0 as L_SUCC_CNT
+ , 0 as L_SUCC_RT
+ , SUM(IFNULL(SND_CNT,0)) AS M_SND_CNT
+ , SUM(IFNULL(SUCC_CNT,0)) AS M_SUCC_CNT
+ , ROUND((SUM(IFNULL(SUCC_CNT,0)) / SUM(IFNULL(SND_CNT,0)) * 100), 2) AS M_SUCC_RT
+ , 0 as A_SND_CNT
+ , 0 as A_SUCC_CNT
+ , 0 as A_SUCC_RT
+ FROM hubez_common.EZ_MON_STAT
+ WHERE 1=1
+ AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d')
+ AND SND_CH_CD = 'MMS'
+ GROUP BY SUM_YM
+ union all
+ SELECT SUM_YM
+ , 0 as T_SND_CNT
+ , 0 as T_SUCC_CNT
+ , 0 as T_SUCC_RT
+ , 0 as S_SND_CNT
+ , 0 as S_SUCC_CNT
+ , 0 as S_SUCC_RT
+ , 0 as L_SND_CNT
+ , 0 as L_SUCC_CNT
+ , 0 as L_SUCC_RT
+ , 0 as M_SND_CNT
+ , 0 as M_SUCC_CNT
+ , 0 as M_SUCC_RT
+ , SUM(IFNULL(SND_CNT,0)) AS A_SND_CNT
+ , SUM(IFNULL(SUCC_CNT,0)) AS A_SUCC_CNT
+ , ROUND((SUM(IFNULL(SUCC_CNT,0)) / SUM(IFNULL(SND_CNT,0)) * 100), 2) AS A_SUCC_RT
+ FROM hubez_common.EZ_MON_STAT
+ WHERE 1=1
+ AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d')
+ AND SND_CH_CD = 'ALIMTALK'
+ GROUP BY SUM_YM
+ ) T GROUP BY SUM_YM order by sumYm desc
+
+
+
+