배너클릭 성능개선

This commit is contained in:
itn 2023-09-07 15:15:12 +09:00
parent 5a454d7063
commit 9d720302e8

View File

@ -6,141 +6,131 @@
<typeAlias alias="popSrhVO" type="itn.let.sym.log.clg.service.PopSrhVO"/> <typeAlias alias="popSrhVO" type="itn.let.sym.log.clg.service.PopSrhVO"/>
<!-- 일별 문자발송 건수 --> <!-- 일별 배너클릭 건수 -->
<select id="etcStatDAO.selectBannerClickStatDay" parameterClass="etcStatVO" resultClass="etcStatVO"> <select id="etcStatDAO.selectBannerClickStatDay" parameterClass="etcStatVO" resultClass="etcStatVO">
SELECT COUNT(X1.creatDt) OVER() AS totCnt, SELECT
X1.creatDt as statDate, M2.totCnt
X1.CNT1 AS menuClickCnt, /* 배너위치 페이지 접속 수 */ , M2.statDate
IFNULL (X2.CLICK_A_CNT, 0 ) as bannerClickCnt, /* 배너 클릭수 */ , IFNULL(M2.menuClickCnt, 0) menuClickCnt
ROUND(IFNULL (X2.CLICK_A_CNT, 0 ) / X1.CNT1 * 100, 2 ) AS bannerClickRate /* (배너) 클릭률 */ , IFNULL(M2.bannerClickCnt, 0) bannerClickCnt
, ROUND(IFNULL(M2.bannerClickCnt, 0) / IFNULL(M2.menuClickCnt, 0) * 100, 2 ) AS bannerClickRate
FROM FROM
( ( SELECT
SELECT creatDt, COUNT(creatDt) AS CNT1 COUNT(0) OVER() AS totCnt
FROM ( SELECT LOG_ID, , M.CREAT_DT AS statDate
(DATE_FORMAT(A.CREAT_DT, '%Y-%m-%d') ) AS creatDt , M.CNT AS menuClickCnt
FROM lettnloginlog A , (
WHERE 1=1 SELECT CLICK_A_CNT FROM MJ_BANNER_CLICK_STAT S
<isEqual prepend="AND" property="menuCode" compareValue="01"> WHERE S.STAT_DATE = M.CREAT_DT
/* 메뉴코드 01 : 메인 */ AND S.BANNER_CODE = #bannerCode#
<![CDATA[ url = #menuUrl# ]]> AND S.MENU_CODE = #menuCode#
</isEqual> ) bannerClickCnt
FROM
<isEqual prepend="AND" property="menuCode" compareValue="02"> (
/* 메뉴코드 02 : 로그인 : 로그인 경우 파라미터 붙는 경우 있어서 뒤 문자열 자름 */ SELECT
<![CDATA[ substr(url, 1,24) = #menuUrl# ]]> (DATE_FORMAT(A.CREAT_DT, '%Y-%m-%d')) AS CREAT_DT
</isEqual> , COUNT(0) CNT
FROM lettnloginlog A
) A1 WHERE 1=1
WHERE 1=1 <isEqual property="menuCode" compareValue="01">
<isNotEmpty property="ntceBgnde"> AND SUBSTR(URL, 1,21) = #menuUrl#
<![CDATA[ AND creatDt BETWEEN #ntceBgnde# AND #ntceEndde# ]]> </isEqual>
</isNotEmpty> <isEqual property="menuCode" compareValue="02">
GROUP BY creatDt AND SUBSTR(URL, 1,24) = #menuUrl#
ORDER BY creatDt DESC </isEqual>
<![CDATA[
) X1 /* 메뉴클릭 정보 */ AND A.CREAT_DT >= #ntceBgnde#
LEFT OUTER JOIN AND A.CREAT_DT < DATE_ADD(#ntceEndde#, INTERVAL 1 DAY)
( ]]>
SELECT STAT_DATE AS creatDt, CLICK_A_CNT from mj_banner_click_stat GROUP BY DATE_FORMAT(A.CREAT_DT, '%Y-%m-%d')
WHERE 1=1 LIMIT #recordCountPerPage# OFFSET #firstIndex#
<isNotEmpty property="ntceBgnde"> ) M
<![CDATA[ AND STAT_DATE BETWEEN #ntceBgnde# AND #ntceEndde# ]]> ) M2
</isNotEmpty> ORDER BY M2.statDate DESC
<![CDATA[ AND BANNER_CODE = #bannerCode# ]]>
<![CDATA[ AND MENU_CODE = #menuCode# ]]>
) X2 /* 배너 클릭 정보 */
ON X1.creatDt = X2.creatDt
ORDER BY X1.creatDt desc
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select> </select>
<!-- 월별 배너클릭 건수 -->
<!-- 월별 문자발송 건수 -->
<select id="etcStatDAO.selectBannerClickStatMonth" parameterClass="etcStatVO" resultClass="etcStatVO"> <select id="etcStatDAO.selectBannerClickStatMonth" parameterClass="etcStatVO" resultClass="etcStatVO">
SELECT SELECT
COUNT(X1.creatDt) OVER() AS totCnt, M2.totCnt
X1.creatDt as statDate, , M2.statDate
X1.CNT1 AS menuClickCnt, /* 배너위치 페이지 접속 수 */ , IFNULL(M2.menuClickCnt, 0) menuClickCnt
IFNULL (X2.CLICK_A_CNT, 0 ) as bannerClickCnt, /* 배너 클릭수 */ , IFNULL(M2.bannerClickCnt, 0) bannerClickCnt
ROUND(IFNULL (X2.CLICK_A_CNT, 0 ) / X1.CNT1 * 100, 2 ) AS bannerClickRate /* (배너) 클릭률 */ , ROUND(IFNULL(M2.bannerClickCnt, 0) / IFNULL(M2.menuClickCnt, 0) * 100, 2 ) AS bannerClickRate
FROM FROM
( ( SELECT
SELECT creatDt, COUNT(creatDt) AS CNT1 COUNT(0) OVER() AS totCnt
FROM ( SELECT LOG_ID, (DATE_FORMAT(A.CREAT_DT, '%Y-%m') ) AS creatDt , M.CREAT_DT AS statDate
FROM lettnloginlog A , M.CNT AS menuClickCnt
WHERE 1=1 , (
<isEqual prepend="AND" property="menuCode" compareValue="01"> SELECT SUM(CLICK_A_CNT) FROM MJ_BANNER_CLICK_STAT S
/* 메뉴코드 01 : 메인 */ WHERE DATE_FORMAT(S.STAT_DATE, '%Y-%m') = M.CREAT_DT
<![CDATA[ url = #menuUrl# ]]> AND S.BANNER_CODE = #bannerCode#
</isEqual> AND S.MENU_CODE = #menuCode#
) bannerClickCnt
<isEqual prepend="AND" property="menuCode" compareValue="02"> FROM
/* 메뉴코드 02 : 로그인 : 로그인 경우 파라미터 붙는 경우 있어서 뒤 문자열 자름 */
<![CDATA[ substr(url, 1,24) = #menuUrl# ]]>
</isEqual>
<![CDATA[ AND (DATE_FORMAT(A.CREAT_DT, '%Y') ) = #searchYear# ]]>
) A1
WHERE 1=1
GROUP BY creatDt
) X1
LEFT OUTER JOIN
( (
SELECT SUBSTR(STAT_DATE, 1,7) creatDt, SUM(CLICK_A_CNT) AS CLICK_A_CNT SELECT
from mj_banner_click_stat (DATE_FORMAT(A.CREAT_DT, '%Y-%m')) AS CREAT_DT
WHERE 1=1 , COUNT(0) CNT
<![CDATA[ AND SUBSTR(STAT_DATE, 1,4) = #searchYear# ]]> FROM lettnloginlog A
<![CDATA[ AND BANNER_CODE = #bannerCode# ]]> WHERE 1=1
<![CDATA[ AND MENU_CODE = #menuCode# ]]> <isEqual property="menuCode" compareValue="01">
GROUP BY SUBSTR(STAT_DATE, 1,7) AND SUBSTR(URL, 1,21) = #menuUrl#
) X2 </isEqual>
ON X1.creatDt = X2.creatDt <isEqual property="menuCode" compareValue="02">
ORDER BY X1.creatDt desc AND SUBSTR(URL, 1,24) = #menuUrl#
</isEqual>
LIMIT #recordCountPerPage# OFFSET #firstIndex# <![CDATA[
AND DATE_FORMAT(A.CREAT_DT, '%Y') = #searchYear#
]]>
GROUP BY DATE_FORMAT(A.CREAT_DT, '%Y-%m')
LIMIT #recordCountPerPage# OFFSET #firstIndex#
) M
) M2
ORDER BY M2.statDate DESC
</select> </select>
<!-- 연별 문자발송 건수 --> <!-- 연별 배너클릭 건수 -->
<select id="etcStatDAO.selectBannerClickStatYear" parameterClass="etcStatVO" resultClass="etcStatVO"> <select id="etcStatDAO.selectBannerClickStatYear" parameterClass="etcStatVO" resultClass="etcStatVO">
SELECT SELECT
COUNT(X1.creatDt) OVER() AS totCnt, M2.totCnt
X1.creatDt as statDate, , M2.statDate
X1.CNT1 AS menuClickCnt, /* 배너위치 페이지 접속 수 */ , IFNULL(M2.menuClickCnt, 0) menuClickCnt
IFNULL (X2.CLICK_A_CNT, 0 ) as bannerClickCnt, /* 배너 클릭수 */ , IFNULL(M2.bannerClickCnt, 0) bannerClickCnt
ROUND(IFNULL (X2.CLICK_A_CNT, 0 ) / X1.CNT1 * 100, 2 ) AS bannerClickRate /* (배너) 클릭률 */ , ROUND(IFNULL(M2.bannerClickCnt, 0) / IFNULL(M2.menuClickCnt, 0) * 100, 2 ) AS bannerClickRate
FROM FROM
( ( SELECT
SELECT creatDt, COUNT(creatDt) AS CNT1 COUNT(0) OVER() AS totCnt
FROM ( SELECT LOG_ID, (DATE_FORMAT(A.CREAT_DT, '%Y') ) AS creatDt , M.CREAT_DT AS statDate
FROM lettnloginlog A , M.CNT AS menuClickCnt
WHERE 1=1 , (
<isEqual prepend="AND" property="menuCode" compareValue="01"> SELECT SUM(CLICK_A_CNT) FROM MJ_BANNER_CLICK_STAT S
/* 메뉴코드 01 : 메인 */ WHERE DATE_FORMAT(S.STAT_DATE, '%Y') = M.CREAT_DT
<![CDATA[ url = #menuUrl# ]]> AND S.BANNER_CODE = #bannerCode#
</isEqual> AND S.MENU_CODE = #menuCode#
) bannerClickCnt
<isEqual prepend="AND" property="menuCode" compareValue="02"> FROM
/* 메뉴코드 02 : 로그인 : 로그인 경우 파라미터 붙는 경우 있어서 뒤 문자열 자름 */
<![CDATA[ substr(url, 1,24) = #menuUrl# ]]>
</isEqual>
<![CDATA[ AND (DATE_FORMAT(A.CREAT_DT, '%Y') ) = #searchYear# ]]>
) A1
WHERE 1=1
GROUP BY creatDt
) X1
LEFT OUTER JOIN
( (
SELECT SUBSTR(STAT_DATE, 1,4) creatDt, SUM(CLICK_A_CNT) AS CLICK_A_CNT SELECT
from mj_banner_click_stat (DATE_FORMAT(A.CREAT_DT, '%Y')) AS CREAT_DT
WHERE 1=1 , COUNT(0) CNT
<![CDATA[ AND SUBSTR(STAT_DATE, 1,4) = #searchYear# ]]> FROM lettnloginlog A
<![CDATA[ AND BANNER_CODE = #bannerCode# ]]> WHERE 1=1
<![CDATA[ AND MENU_CODE = #menuCode# ]]> <isEqual property="menuCode" compareValue="01">
GROUP BY SUBSTR(STAT_DATE, 1,4) AND SUBSTR(URL, 1,21) = #menuUrl#
) X2 </isEqual>
ON X1.creatDt = X2.creatDt <isEqual property="menuCode" compareValue="02">
ORDER BY X1.creatDt desc AND SUBSTR(URL, 1,24) = #menuUrl#
LIMIT #recordCountPerPage# OFFSET #firstIndex# </isEqual>
<![CDATA[
AND DATE_FORMAT(A.CREAT_DT, '%Y') = #searchYear#
]]>
GROUP BY DATE_FORMAT(A.CREAT_DT, '%Y')
LIMIT #recordCountPerPage# OFFSET #firstIndex#
) M
) M2
ORDER BY M2.statDate DESC
</select> </select>