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