itn 2023-08-23
일별 회원전환률 통계 성능개선
@a44f98aefc7d6057e01da6634b6245aea59005cc
src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
--- src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
+++ src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
@@ -4585,7 +4585,8 @@
     	
     	//한달 전    
     	Calendar mon = Calendar.getInstance();    
-    	mon.add(Calendar.MONTH , -1);    
+    	//mon.add(Calendar.MONTH , -1);
+    	mon.add(Calendar.WEEK_OF_MONTH , -2);
     	String beforeMonthDay = new java.text.SimpleDateFormat("yyyy-MM-dd").format(mon.getTime());    
     	
     	if (null == mjonMsgVO.getNtceBgnde() || mjonMsgVO.getNtceBgnde().equals("")) {
src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
--- src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
@@ -5545,10 +5545,10 @@
 					SELECT COUNT(0) FROM LETTNGNRLMBER S1 
 					WHERE 1=1 
 				        <isNotEmpty property="ntceBgnde">
-						AND <![CDATA[ DATE_FORMAT(S1.APPROVAL_PNTTM, '%Y-%m-%d')  >=   #ntceBgnde# ]]>
+						AND <![CDATA[ S1.APPROVAL_PNTTM >= #ntceBgnde# ]]>
 						</isNotEmpty>
 				        <isNotEmpty property="ntceEndde">
-						AND <![CDATA[ DATE_FORMAT(S1.APPROVAL_PNTTM, '%Y-%m-%d') <= #ntceEndde# ]]>
+						AND <![CDATA[ S1.APPROVAL_PNTTM <= DATE_FORMAT(#ntceEndde# + INTERVAL 1 DAY, '%Y-%m-%d') ]]>
 						</isNotEmpty>
 						AND DATE_FORMAT(L.CREAT_DT, '%Y-%m-%d') = DATE_FORMAT(S1.APPROVAL_PNTTM, '%Y-%m-%d') 
 						AND S1.MBER_STTUS = 'Y'
@@ -5557,10 +5557,10 @@
 			WHERE 1=1 
 			AND L.DEVICE_TYPE = 'P'
 	        <isNotEmpty property="ntceBgnde">
-			AND <![CDATA[ DATE_FORMAT(L.CREAT_DT, '%Y-%m-%d')  >=   #ntceBgnde# ]]>
+			AND <![CDATA[ L.CREAT_DT >= #ntceBgnde# ]]>
 			</isNotEmpty>
 	        <isNotEmpty property="ntceEndde">
-			AND <![CDATA[ DATE_FORMAT(L.CREAT_DT, '%Y-%m-%d') <= #ntceEndde# ]]>
+			AND <![CDATA[ L.CREAT_DT <= DATE_FORMAT(#ntceEndde# + INTERVAL 1 DAY, '%Y-%m-%d') ]]>
 			</isNotEmpty>
 			AND <![CDATA[ L.CREAT_DT < DATE_FORMAT(NOW() + INTERVAL 1 DAY, '%Y-%m-%d') ]]>
 			GROUP BY DATE_FORMAT(L.CREAT_DT, '%Y-%m-%d')
@@ -5576,31 +5576,17 @@
 		FROM (
 			SELECT 
 				DATE_FORMAT(L.CREAT_DT, '%Y-%m-%d') regDate
-				, COUNT(DISTINCT L.CONECT_IP) visitCnt
-				, (
-					SELECT COUNT(0) FROM LETTNGNRLMBER S1 
-					WHERE 1=1 
-				        <isNotEmpty property="ntceBgnde">
-						AND <![CDATA[ DATE_FORMAT(S1.APPROVAL_PNTTM, '%Y-%m-%d')  >=   #ntceBgnde# ]]>
-						</isNotEmpty>
-				        <isNotEmpty property="ntceEndde">
-						AND <![CDATA[ DATE_FORMAT(S1.APPROVAL_PNTTM, '%Y-%m-%d') <= #ntceEndde# ]]>
-						</isNotEmpty>
-						AND DATE_FORMAT(L.CREAT_DT, '%Y-%m-%d') = DATE_FORMAT(S1.APPROVAL_PNTTM, '%Y-%m-%d') 
-						AND S1.MBER_STTUS = 'Y'
-				) AS memCnt			
 			FROM LETTNLOGINLOG L
 			WHERE 1=1 
 			AND L.DEVICE_TYPE = 'P'
 	        <isNotEmpty property="ntceBgnde">
-			AND <![CDATA[ DATE_FORMAT(L.CREAT_DT, '%Y-%m-%d')  >=   #ntceBgnde# ]]>
+			AND <![CDATA[ L.CREAT_DT >= #ntceBgnde# ]]>
 			</isNotEmpty>
 	        <isNotEmpty property="ntceEndde">
-			AND <![CDATA[ DATE_FORMAT(L.CREAT_DT, '%Y-%m-%d') <= #ntceEndde# ]]>
+			AND <![CDATA[ L.CREAT_DT <= DATE_FORMAT(#ntceEndde# + INTERVAL 1 DAY, '%Y-%m-%d') ]]>
 			</isNotEmpty>
 			AND <![CDATA[ L.CREAT_DT < DATE_FORMAT(NOW() + INTERVAL 1 DAY, '%Y-%m-%d') ]]>
 			GROUP BY DATE_FORMAT(L.CREAT_DT, '%Y-%m-%d')
-			ORDER BY DATE_FORMAT(L.CREAT_DT, '%Y-%m-%d') DESC
 		) M
 	</select>		
 
Add a comment
List