배너클릭 성능개선
This commit is contained in:
parent
5a454d7063
commit
9d720302e8
@ -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
|
||||||
|
( SELECT
|
||||||
|
COUNT(0) OVER() AS totCnt
|
||||||
|
, M.CREAT_DT AS statDate
|
||||||
|
, M.CNT AS menuClickCnt
|
||||||
|
, (
|
||||||
|
SELECT CLICK_A_CNT FROM MJ_BANNER_CLICK_STAT S
|
||||||
|
WHERE S.STAT_DATE = M.CREAT_DT
|
||||||
|
AND S.BANNER_CODE = #bannerCode#
|
||||||
|
AND S.MENU_CODE = #menuCode#
|
||||||
|
) bannerClickCnt
|
||||||
FROM
|
FROM
|
||||||
(
|
(
|
||||||
SELECT creatDt, COUNT(creatDt) AS CNT1
|
SELECT
|
||||||
FROM ( SELECT LOG_ID,
|
(DATE_FORMAT(A.CREAT_DT, '%Y-%m-%d')) AS CREAT_DT
|
||||||
(DATE_FORMAT(A.CREAT_DT, '%Y-%m-%d') ) AS creatDt
|
, COUNT(0) CNT
|
||||||
FROM lettnloginlog A
|
FROM lettnloginlog A
|
||||||
WHERE 1=1
|
WHERE 1=1
|
||||||
<isEqual prepend="AND" property="menuCode" compareValue="01">
|
<isEqual property="menuCode" compareValue="01">
|
||||||
/* 메뉴코드 01 : 메인 */
|
AND SUBSTR(URL, 1,21) = #menuUrl#
|
||||||
<![CDATA[ url = #menuUrl# ]]>
|
|
||||||
</isEqual>
|
</isEqual>
|
||||||
|
<isEqual property="menuCode" compareValue="02">
|
||||||
<isEqual prepend="AND" property="menuCode" compareValue="02">
|
AND SUBSTR(URL, 1,24) = #menuUrl#
|
||||||
/* 메뉴코드 02 : 로그인 : 로그인 경우 파라미터 붙는 경우 있어서 뒤 문자열 자름 */
|
|
||||||
<![CDATA[ substr(url, 1,24) = #menuUrl# ]]>
|
|
||||||
</isEqual>
|
</isEqual>
|
||||||
|
<![CDATA[
|
||||||
) A1
|
AND A.CREAT_DT >= #ntceBgnde#
|
||||||
WHERE 1=1
|
AND A.CREAT_DT < DATE_ADD(#ntceEndde#, INTERVAL 1 DAY)
|
||||||
<isNotEmpty property="ntceBgnde">
|
]]>
|
||||||
<![CDATA[ AND creatDt BETWEEN #ntceBgnde# AND #ntceEndde# ]]>
|
GROUP BY DATE_FORMAT(A.CREAT_DT, '%Y-%m-%d')
|
||||||
</isNotEmpty>
|
|
||||||
GROUP BY creatDt
|
|
||||||
ORDER BY creatDt DESC
|
|
||||||
|
|
||||||
) X1 /* 메뉴클릭 정보 */
|
|
||||||
LEFT OUTER JOIN
|
|
||||||
(
|
|
||||||
SELECT STAT_DATE AS creatDt, CLICK_A_CNT from mj_banner_click_stat
|
|
||||||
WHERE 1=1
|
|
||||||
<isNotEmpty property="ntceBgnde">
|
|
||||||
<![CDATA[ AND STAT_DATE BETWEEN #ntceBgnde# AND #ntceEndde# ]]>
|
|
||||||
</isNotEmpty>
|
|
||||||
<![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#
|
LIMIT #recordCountPerPage# OFFSET #firstIndex#
|
||||||
|
) M
|
||||||
|
) M2
|
||||||
|
ORDER BY M2.statDate DESC
|
||||||
</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
|
||||||
|
( SELECT
|
||||||
|
COUNT(0) OVER() AS totCnt
|
||||||
|
, M.CREAT_DT AS statDate
|
||||||
|
, M.CNT AS menuClickCnt
|
||||||
|
, (
|
||||||
|
SELECT SUM(CLICK_A_CNT) FROM MJ_BANNER_CLICK_STAT S
|
||||||
|
WHERE DATE_FORMAT(S.STAT_DATE, '%Y-%m') = M.CREAT_DT
|
||||||
|
AND S.BANNER_CODE = #bannerCode#
|
||||||
|
AND S.MENU_CODE = #menuCode#
|
||||||
|
) bannerClickCnt
|
||||||
FROM
|
FROM
|
||||||
(
|
(
|
||||||
SELECT creatDt, COUNT(creatDt) AS CNT1
|
SELECT
|
||||||
FROM ( SELECT LOG_ID, (DATE_FORMAT(A.CREAT_DT, '%Y-%m') ) AS creatDt
|
(DATE_FORMAT(A.CREAT_DT, '%Y-%m')) AS CREAT_DT
|
||||||
|
, COUNT(0) CNT
|
||||||
FROM lettnloginlog A
|
FROM lettnloginlog A
|
||||||
WHERE 1=1
|
WHERE 1=1
|
||||||
<isEqual prepend="AND" property="menuCode" compareValue="01">
|
<isEqual property="menuCode" compareValue="01">
|
||||||
/* 메뉴코드 01 : 메인 */
|
AND SUBSTR(URL, 1,21) = #menuUrl#
|
||||||
<![CDATA[ url = #menuUrl# ]]>
|
|
||||||
</isEqual>
|
</isEqual>
|
||||||
|
<isEqual property="menuCode" compareValue="02">
|
||||||
<isEqual prepend="AND" property="menuCode" compareValue="02">
|
AND SUBSTR(URL, 1,24) = #menuUrl#
|
||||||
/* 메뉴코드 02 : 로그인 : 로그인 경우 파라미터 붙는 경우 있어서 뒤 문자열 자름 */
|
|
||||||
<![CDATA[ substr(url, 1,24) = #menuUrl# ]]>
|
|
||||||
</isEqual>
|
</isEqual>
|
||||||
|
<![CDATA[
|
||||||
<![CDATA[ AND (DATE_FORMAT(A.CREAT_DT, '%Y') ) = #searchYear# ]]>
|
AND DATE_FORMAT(A.CREAT_DT, '%Y') = #searchYear#
|
||||||
) A1
|
]]>
|
||||||
WHERE 1=1
|
GROUP BY DATE_FORMAT(A.CREAT_DT, '%Y-%m')
|
||||||
GROUP BY creatDt
|
|
||||||
) X1
|
|
||||||
LEFT OUTER JOIN
|
|
||||||
(
|
|
||||||
SELECT SUBSTR(STAT_DATE, 1,7) creatDt, SUM(CLICK_A_CNT) AS CLICK_A_CNT
|
|
||||||
from mj_banner_click_stat
|
|
||||||
WHERE 1=1
|
|
||||||
<![CDATA[ AND SUBSTR(STAT_DATE, 1,4) = #searchYear# ]]>
|
|
||||||
<![CDATA[ AND BANNER_CODE = #bannerCode# ]]>
|
|
||||||
<![CDATA[ AND MENU_CODE = #menuCode# ]]>
|
|
||||||
GROUP BY SUBSTR(STAT_DATE, 1,7)
|
|
||||||
) X2
|
|
||||||
ON X1.creatDt = X2.creatDt
|
|
||||||
ORDER BY X1.creatDt desc
|
|
||||||
|
|
||||||
LIMIT #recordCountPerPage# OFFSET #firstIndex#
|
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
|
||||||
|
( SELECT
|
||||||
|
COUNT(0) OVER() AS totCnt
|
||||||
|
, M.CREAT_DT AS statDate
|
||||||
|
, M.CNT AS menuClickCnt
|
||||||
|
, (
|
||||||
|
SELECT SUM(CLICK_A_CNT) FROM MJ_BANNER_CLICK_STAT S
|
||||||
|
WHERE DATE_FORMAT(S.STAT_DATE, '%Y') = M.CREAT_DT
|
||||||
|
AND S.BANNER_CODE = #bannerCode#
|
||||||
|
AND S.MENU_CODE = #menuCode#
|
||||||
|
) bannerClickCnt
|
||||||
FROM
|
FROM
|
||||||
(
|
(
|
||||||
SELECT creatDt, COUNT(creatDt) AS CNT1
|
SELECT
|
||||||
FROM ( SELECT LOG_ID, (DATE_FORMAT(A.CREAT_DT, '%Y') ) AS creatDt
|
(DATE_FORMAT(A.CREAT_DT, '%Y')) AS CREAT_DT
|
||||||
|
, COUNT(0) CNT
|
||||||
FROM lettnloginlog A
|
FROM lettnloginlog A
|
||||||
WHERE 1=1
|
WHERE 1=1
|
||||||
<isEqual prepend="AND" property="menuCode" compareValue="01">
|
<isEqual property="menuCode" compareValue="01">
|
||||||
/* 메뉴코드 01 : 메인 */
|
AND SUBSTR(URL, 1,21) = #menuUrl#
|
||||||
<![CDATA[ url = #menuUrl# ]]>
|
|
||||||
</isEqual>
|
</isEqual>
|
||||||
|
<isEqual property="menuCode" compareValue="02">
|
||||||
<isEqual prepend="AND" property="menuCode" compareValue="02">
|
AND SUBSTR(URL, 1,24) = #menuUrl#
|
||||||
/* 메뉴코드 02 : 로그인 : 로그인 경우 파라미터 붙는 경우 있어서 뒤 문자열 자름 */
|
|
||||||
<![CDATA[ substr(url, 1,24) = #menuUrl# ]]>
|
|
||||||
</isEqual>
|
</isEqual>
|
||||||
<![CDATA[ AND (DATE_FORMAT(A.CREAT_DT, '%Y') ) = #searchYear# ]]>
|
<![CDATA[
|
||||||
) A1
|
AND DATE_FORMAT(A.CREAT_DT, '%Y') = #searchYear#
|
||||||
WHERE 1=1
|
]]>
|
||||||
GROUP BY creatDt
|
GROUP BY DATE_FORMAT(A.CREAT_DT, '%Y')
|
||||||
) X1
|
|
||||||
LEFT OUTER JOIN
|
|
||||||
(
|
|
||||||
SELECT SUBSTR(STAT_DATE, 1,4) creatDt, SUM(CLICK_A_CNT) AS CLICK_A_CNT
|
|
||||||
from mj_banner_click_stat
|
|
||||||
WHERE 1=1
|
|
||||||
<![CDATA[ AND SUBSTR(STAT_DATE, 1,4) = #searchYear# ]]>
|
|
||||||
<![CDATA[ AND BANNER_CODE = #bannerCode# ]]>
|
|
||||||
<![CDATA[ AND MENU_CODE = #menuCode# ]]>
|
|
||||||
GROUP BY SUBSTR(STAT_DATE, 1,4)
|
|
||||||
) X2
|
|
||||||
ON X1.creatDt = X2.creatDt
|
|
||||||
ORDER BY X1.creatDt desc
|
|
||||||
LIMIT #recordCountPerPage# OFFSET #firstIndex#
|
LIMIT #recordCountPerPage# OFFSET #firstIndex#
|
||||||
|
) M
|
||||||
|
) M2
|
||||||
|
ORDER BY M2.statDate DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user