일별 회원전환률 건수 성능개선

This commit is contained in:
itn 2023-09-04 15:11:34 +09:00
parent f33284698c
commit 0d4583251a

View File

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