itn 2023-09-04
일별 회원전환률 건수 성능개선
@0d4583251ab394a6d7eaf749ca83d28a9ff874a7
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
@@ -5563,40 +5563,31 @@
 	<!-- 일별 회원전환률 건수 -->
 	<select id="mjonMsgDAO.selectMemLoginDayChart" parameterClass="mjonMsgVO" resultClass="mjonMsgVO">
 		SELECT 
-			M.regDate
-			, M.visitCnt
-			, M.memCnt
-			, ROUND((M.memCnt / M.visitCnt) * 100, 2) conversRate
-		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[ S1.APPROVAL_PNTTM >= #ntceBgnde# ]]>
-						</isNotEmpty>
-				        <isNotEmpty property="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'
-				) AS memCnt			
-			FROM LETTNLOGINLOG L
-			WHERE 1=1 
-			AND L.DEVICE_TYPE = 'P'
-	        <isNotEmpty property="ntceBgnde">
-			AND <![CDATA[ L.CREAT_DT >= #ntceBgnde# ]]>
-			</isNotEmpty>
-	        <isNotEmpty property="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
-			LIMIT  #recordCountPerPage# OFFSET #firstIndex#
-		) M
+			DATE_FORMAT(L.STAT_DATE, '%Y-%m-%d') AS regDate
+			, L.CLICK_P_CNT	AS visitCnt
+			, (
+				SELECT COUNT(0) FROM LETTNGNRLMBER S1 
+				WHERE 1=1 
+			        <isNotEmpty property="ntceBgnde">
+					AND <![CDATA[ S1.APPROVAL_PNTTM >= #ntceBgnde# ]]>
+					</isNotEmpty>
+			        <isNotEmpty property="ntceEndde">
+					AND <![CDATA[ S1.APPROVAL_PNTTM <= DATE_FORMAT(#ntceEndde# + INTERVAL 1 DAY, '%Y-%m-%d') ]]>
+					</isNotEmpty>
+					AND DATE_FORMAT(L.STAT_DATE, '%Y-%m-%d') = DATE_FORMAT(S1.APPROVAL_PNTTM, '%Y-%m-%d') 
+					AND S1.MBER_STTUS = 'Y'
+			) AS memCnt				
+		FROM MJ_DASH_STAT L 
+		WHERE 1=1 
+		<isNotEmpty property="ntceBgnde">
+			AND <![CDATA[ L.STAT_DATE >= #ntceBgnde# ]]>
+		</isNotEmpty>
+		<isNotEmpty property="ntceEndde">
+			AND <![CDATA[ L.STAT_DATE <= DATE_FORMAT(#ntceEndde# + INTERVAL 1 DAY, '%Y-%m-%d') ]]>
+		</isNotEmpty>
+		AND <![CDATA[ L.STAT_DATE < DATE_FORMAT(NOW() + INTERVAL 1 DAY, '%Y-%m-%d') ]]>
+		ORDER BY STAT_DATE DESC
+		LIMIT  #recordCountPerPage# OFFSET #firstIndex#
 	</select>	
 	
 	<!-- 일별 회원전환률 건수 TotCnt -->
@@ -5605,18 +5596,16 @@
 			COUNT(0) totCnt
 		FROM (
 			SELECT 
-				DATE_FORMAT(L.CREAT_DT, '%Y-%m-%d') regDate
-			FROM LETTNLOGINLOG L
+				STAT_DATE regDate
+			FROM MJ_DASH_STAT L 
 			WHERE 1=1 
-			AND L.DEVICE_TYPE = 'P'
 	        <isNotEmpty property="ntceBgnde">
-			AND <![CDATA[ L.CREAT_DT >= #ntceBgnde# ]]>
+			AND <![CDATA[ L.STAT_DATE >= #ntceBgnde# ]]>
 			</isNotEmpty>
 	        <isNotEmpty property="ntceEndde">
-			AND <![CDATA[ L.CREAT_DT <= DATE_FORMAT(#ntceEndde# + INTERVAL 1 DAY, '%Y-%m-%d') ]]>
+			AND <![CDATA[ L.STAT_DATE <= 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')
+			AND <![CDATA[ L.STAT_DATE < DATE_FORMAT(NOW() + INTERVAL 1 DAY, '%Y-%m-%d') ]]>
 		) M
 	</select>		
 
Add a comment
List