From c6c7cf345f67b861aead688031ef677c9a2ccb5a Mon Sep 17 00:00:00 2001 From: wanggongfeng <1305282856@qq.com> Date: Wed, 27 May 2020 23:56:46 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E7=94=A8=E6=88=B7=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=88=86=E6=9E=90=E3=80=91=E3=80=90sql=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E9=80=9F=E5=BA=A6=E4=BC=98=E5=8C=96=E3=80=91-=E7=8E=8B?= =?UTF-8?q?=E5=85=AC=E5=B3=B0-2020-05-27?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/mapper/user/UserAnalysisDao.xml | 503 +++++++++++------- 1 file changed, 309 insertions(+), 194 deletions(-) diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/user/UserAnalysisDao.xml b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/user/UserAnalysisDao.xml index fb46f4619..0ad3ad0e5 100644 --- a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/user/UserAnalysisDao.xml +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/user/UserAnalysisDao.xml @@ -381,61 +381,82 @@ ) t GROUP BY t.DEPT_ID--> SELECT - t.DEPT_ID gridId, COUNT( t.ID ) registerCount, - COUNT(((t.AUTHENTICATED_TYPE='0' and t.AUTHENTICATED_FLAG = '1') or (t.AUTHENTICATED_TYPE='1' and t.AUTHENTICATED_FLAG = '0' AND t.HistoryCount > 0)) OR NULL) residentCount, - COUNT((t.AUTHENTICATED_TYPE='1' and t.AUTHENTICATED_FLAG = '1') OR NULL) partyCount - FROM ( - SELECT - uu.ID, ifnull(if(uu.DEPT_ID = 0,null,uu.DEPT_ID),RELATION.Grid_id) DEPT_ID, uu.STATE, uu.PARTY_FLAG, - HISTORY.AUTHENTICATED_TYPE,HISTORY.AUTHENTICATED_FLAG,HISCOUNT.HistoryCount + user.DEPT_ID gridId, + COUNT(user.ID) AS registerCount, + COUNT((user.AUTHENTICATED_TYPE = '0' AND user.AUTHENTICATED_FLAG = '1') OR (user.AUTHENTICATED_TYPE = '1' AND user.AUTHENTICATED_FLAG = '0' AND user.HistoryCount > 0) OR NULL) AS residentCount , + COUNT((user.AUTHENTICATED_TYPE = '1' AND user.AUTHENTICATED_FLAG = '1') OR NULL) AS partyCount FROM - esua_epdc_user.epdc_user uu - - LEFT JOIN ( - SELECT MAX( CREATED_TIME ) AS CREATED_TIME, USER_ID - FROM esua_epdc_user.epdc_user_authenticate_history - WHERE DEL_FLAG = '0' AND AUTHENTICATED_TYPE IN ( '0', '1' ) + ( + select newuu.ID,newuu.AUTHENTICATED_TYPE,newuu.AUTHENTICATED_FLAG,newuu.HistoryCount,newuu.DEPT_ID from ( + SELECT + DISTINCT uu.ID,uu.DEL_FLAG,uu.CREATED_TIME, + ( + SELECT + AUTHENTICATED_TYPE + FROM + esua_epdc_user.epdc_user_authenticate_history + WHERE + DEL_FLAG = '0' + AND AUTHENTICATED_TYPE IN ( '0', '1' ) and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <= #{endTime} - GROUP BY USER_ID - ) MAXHIS ON MAXHIS.USER_ID = uu.ID - - LEFT JOIN esua_epdc_user.epdc_user_authenticate_history HISTORY ON HISTORY.USER_ID = MAXHIS.USER_ID AND HISTORY.CREATED_TIME = MAXHIS.CREATED_TIME AND HISTORY.DEL_FLAG = '0' - LEFT JOIN ( + AND USER_ID = uu.ID + ORDER BY + CREATED_TIME DESC, + id + LIMIT 1 + ) AS AUTHENTICATED_TYPE, + ( SELECT - count(id) AS HistoryCount, - USER_ID + AUTHENTICATED_FLAG FROM esua_epdc_user.epdc_user_authenticate_history WHERE DEL_FLAG = '0' AND AUTHENTICATED_TYPE IN ( '0', '1' ) - AND AUTHENTICATED_FLAG= '1' and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <= #{endTime} - GROUP BY USER_ID - ) HISCOUNT ON HISCOUNT.USER_ID = uu.ID - LEFT JOIN ( - SELECT MIN( CREATED_TIME ) AS CREATED_TIME, - USER_ID FROM esua_epdc_user.epdc_user_grid_relation - WHERE - DEL_FLAG = '0' - GROUP BY - USER_ID - ) MINRELA ON MINRELA.USER_ID = uu.ID - LEFT JOIN esua_epdc_user.epdc_user_grid_relation RELATION ON RELATION.USER_ID = MINRELA.USER_ID AND RELATION.DEL_FLAG = '0' AND MINRELA.CREATED_TIME = RELATION.CREATED_TIME - WHERE - uu.DEL_FLAG = '0' + AND USER_ID = uu.ID + ORDER BY + CREATED_TIME DESC , + id + LIMIT 1 + ) AS AUTHENTICATED_FLAG, + ( + SELECT + count( id ) AS HistoryCount + FROM + esua_epdc_user.epdc_user_authenticate_history + WHERE + DEL_FLAG = '0' + AND AUTHENTICATED_TYPE IN ( '0', '1' ) + AND AUTHENTICATED_FLAG = '1' + + and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <= #{endTime} + + AND USER_ID = uu.ID + ) AS HistoryCount, + ifnull(if(uu.DEPT_ID = 0, NULL, uu.DEPT_ID), ( + SELECT GRID_ID FROM esua_epdc_user.epdc_user_grid_relation + WHERE DEL_FLAG = '0' AND USER_ID = uu.ID + ORDER BY + CREATED_TIME, + id + LIMIT 1 + )) AS DEPT_ID + FROM + esua_epdc_user.epdc_user uu ) newuu + where newuu.DEL_FLAG = '0' - AND ifnull(if(uu.DEPT_ID = 0,null,uu.DEPT_ID),RELATION.Grid_id) in + AND newuu.DEPT_ID in - AND DATE_FORMAT(uu.CREATED_TIME,'%Y-%m-%d') BETWEEN #{startTime} AND #{endTime} + AND DATE_FORMAT(newuu.CREATED_TIME,'%Y-%m-%d') BETWEEN #{startTime} AND #{endTime} - ) t - GROUP BY t.DEPT_ID + ) user + GROUP BY user.DEPT_ID