diff --git a/epdc-cloud-analysis/doc/kettle/analysis-yushan/analysis_extracting/epdc_user_statistics_extracting.ktr b/epdc-cloud-analysis/doc/kettle/analysis-yushan/analysis_extracting/epdc_user_statistics_extracting.ktr index 0f7b765..c0db2af 100644 --- a/epdc-cloud-analysis/doc/kettle/analysis-yushan/analysis_extracting/epdc_user_statistics_extracting.ktr +++ b/epdc-cloud-analysis/doc/kettle/analysis-yushan/analysis_extracting/epdc_user_statistics_extracting.ktr @@ -436,8 +436,8 @@ - -- 不计入未认证居民数。 - + -- 以下统计均不计入未认证居民数,但统计数量和用户数量有区别。 +-- ①按居住网格统计(此时统计数量和人员数量一致): SELECT total.GRID_ID, SUM( total.USER_TOTAL + total.COMPANY_REPRESENT_TOTAL ) AS USER_TOTAL, @@ -481,12 +481,81 @@ FROM ( GROUP BY DEPT_ID ) total GROUP BY - total.GRID_ID + total.GRID_ID; + +-- ②按认证网格统计(此时因为一个人可以认证多个网格,所以统计数量大于人员数量): +SELECT total.GRID_ID, + SUM(total.USER_TOTAL+total.COMPANY_REPRESENT_TOTAL) AS USER_TOTAL, + SUM(total.RESIDENTS_TOTAL) AS RESIDENTS_TOTAL, + SUM(total.PARTY_TOTAL) AS PARTY_TOTAL, + SUM(total.OVER_FIFTY_PARTY_TOTAL) AS OVER_FIFTY_PARTY_TOTAL, + SUM(total.UNDER_FIFTY_PARTY_TOTAL) AS UNDER_FIFTY_PARTY_TOTAL, + SUM(total.COMPANY_REPRESENT_TOTAL) AS COMPANY_REPRESENT_TOTAL, + NOW() AS CREATED_TIME + from + (SELECT + t1.GRID_ID, + t1.USER_TOTAL, + ( t1.USER_TOTAL - t1.PARTY_TOTAL ) AS RESIDENTS_TOTAL, + t1.PARTY_TOTAL, + t1.OVER_FIFTY_PARTY_TOTAL, + ( t1.PARTY_TOTAL - t1.OVER_FIFTY_PARTY_TOTAL ) AS UNDER_FIFTY_PARTY_TOTAL, + 0 AS COMPANY_REPRESENT_TOTAL + FROM + ( + SELECT + t.GRID_ID, + COUNT( t.ID ) AS USER_TOTAL, + SUM( t.PARTY_FLAG = 1 ) AS PARTY_TOTAL, + SUM( t.age >= 50 AND t.PARTY_FLAG = 1 ) AS OVER_FIFTY_PARTY_TOTAL + FROM + ( + SELECT + eu.ID, + eu.PARTY_FLAG, + IFNULL( TIMESTAMPDIFF( YEAR, eu.BIRTHDAY, CURDATE( ) ), 0 ) AS age, + CASE + + WHEN eu.DEPT_ID IS NOT NULL + AND eu.DEPT_ID <> 0 THEN + eu.DEPT_ID ELSE ( + SELECT + eugr.GRID_ID + FROM + meta_epdc_user_grid_relation eugr + WHERE + eugr.DEL_FLAG = '0' + AND eugr.USER_ID = eu.ID + ORDER BY + CREATED_TIME + LIMIT 1 + ) + END AS GRID_ID + FROM + meta_epdc_user eu + WHERE + eu.DEL_FLAG = '0' + ) t + where t.grid_id != '' + GROUP BY t.GRID_ID + ) t1 +UNION ALL + select DEPT_ID AS GRID_ID, + 0 AS USER_TOTAL, + 0 AS RESIDENTS_TOTAL, + 0 AS PARTY_TOTAL, + 0 AS OVER_FIFTY_PARTY_TOTAL, + 0 AS UNDER_FIFTY_PARTY_TOTAL, + COUNT(ID) AS COMPANY_REPRESENT_TOTAL + FROM meta_epdc_enterprise_info + WHERE DEL_FLAG=0 + GROUP BY DEPT_ID)total + group by total.GRID_ID; - 327 - 339 - 822 - 764 + 496 + 32 + 1016 + 2330 Microsoft YaHei UI 9 N @@ -638,73 +707,50 @@ GROUP BY esua_epdc_analysis - SELECT total.GRID_ID, - SUM(total.USER_TOTAL+total.COMPANY_REPRESENT_TOTAL) AS USER_TOTAL, - SUM(total.RESIDENTS_TOTAL) AS RESIDENTS_TOTAL, - SUM(total.PARTY_TOTAL) AS PARTY_TOTAL, - SUM(total.OVER_FIFTY_PARTY_TOTAL) AS OVER_FIFTY_PARTY_TOTAL, - SUM(total.UNDER_FIFTY_PARTY_TOTAL) AS UNDER_FIFTY_PARTY_TOTAL, - SUM(total.COMPANY_REPRESENT_TOTAL) AS COMPANY_REPRESENT_TOTAL, - NOW() AS CREATED_TIME - from - (SELECT - t1.GRID_ID, - t1.USER_TOTAL, - ( t1.USER_TOTAL - t1.PARTY_TOTAL ) AS RESIDENTS_TOTAL, - t1.PARTY_TOTAL, - t1.OVER_FIFTY_PARTY_TOTAL, - ( t1.PARTY_TOTAL - t1.OVER_FIFTY_PARTY_TOTAL ) AS UNDER_FIFTY_PARTY_TOTAL, - 0 AS COMPANY_REPRESENT_TOTAL - FROM - ( + SELECT + total.GRID_ID, + SUM( total.USER_TOTAL + total.COMPANY_REPRESENT_TOTAL ) AS USER_TOTAL, + SUM( total.RESIDENTS_TOTAL ) AS RESIDENTS_TOTAL, + SUM( total.PARTY_TOTAL ) AS PARTY_TOTAL, + SUM( total.OVER_FIFTY_PARTY_TOTAL ) AS OVER_FIFTY_PARTY_TOTAL, + SUM( total.UNDER_FIFTY_PARTY_TOTAL ) AS UNDER_FIFTY_PARTY_TOTAL, + SUM( total.COMPANY_REPRESENT_TOTAL ) AS COMPANY_REPRESENT_TOTAL, + NOW() AS CREATED_TIME +FROM ( + SELECT + t1.GRID_ID, t1.USER_TOTAL, + ( t1.USER_TOTAL - t1.PARTY_TOTAL) AS RESIDENTS_TOTAL, + t1.PARTY_TOTAL, t1.OVER_FIFTY_PARTY_TOTAL, + (t1.PARTY_TOTAL - t1.OVER_FIFTY_PARTY_TOTAL) AS UNDER_FIFTY_PARTY_TOTAL, + 0 AS COMPANY_REPRESENT_TOTAL + FROM ( + SELECT + t.GRID_ID, COUNT( t.ID ) AS USER_TOTAL, + SUM( t.PARTY_FLAG = 1 ) AS PARTY_TOTAL, + SUM( t.age >= 50 AND t.PARTY_FLAG = 1 ) AS OVER_FIFTY_PARTY_TOTAL + FROM ( SELECT - t.GRID_ID, - COUNT( t.ID ) AS USER_TOTAL, - SUM( t.PARTY_FLAG = 1 ) AS PARTY_TOTAL, - SUM( t.age >= 50 AND t.PARTY_FLAG = 1 ) AS OVER_FIFTY_PARTY_TOTAL + eu.ID, eu.PARTY_FLAG, + IFNULL( TIMESTAMPDIFF( YEAR, eu.BIRTHDAY, CURDATE()), 0 ) AS age, + CASE WHEN eu.DEPT_ID IS NOT NULL AND eu.DEPT_ID <> 0 THEN eu.DEPT_ID ELSE '' END AS GRID_ID FROM - ( - SELECT - eu.ID, - eu.PARTY_FLAG, - IFNULL( TIMESTAMPDIFF( YEAR, eu.BIRTHDAY, CURDATE( ) ), 0 ) AS age, - CASE - - WHEN eu.DEPT_ID IS NOT NULL - AND eu.DEPT_ID <> 0 THEN - eu.DEPT_ID ELSE ( - SELECT - eugr.GRID_ID - FROM - meta_epdc_user_grid_relation eugr - WHERE - eugr.DEL_FLAG = '0' - AND eugr.USER_ID = eu.ID - ORDER BY - CREATED_TIME - LIMIT 1 - ) - END AS GRID_ID - FROM - meta_epdc_user eu - WHERE - eu.DEL_FLAG = '0' - ) t - where t.grid_id != '' - GROUP BY t.GRID_ID - ) t1 -UNION ALL - select DEPT_ID AS GRID_ID, - 0 AS USER_TOTAL, - 0 AS RESIDENTS_TOTAL, - 0 AS PARTY_TOTAL, - 0 AS OVER_FIFTY_PARTY_TOTAL, - 0 AS UNDER_FIFTY_PARTY_TOTAL, - COUNT(ID) AS COMPANY_REPRESENT_TOTAL - FROM meta_epdc_enterprise_info - WHERE DEL_FLAG=0 - GROUP BY DEPT_ID)total - group by total.GRID_ID + meta_epdc_user eu + WHERE + eu.DEL_FLAG = '0' + ) t + WHERE t.grid_id != '' + GROUP BY t.GRID_ID + ) t1 UNION ALL + SELECT + DEPT_ID AS GRID_ID, 0 AS USER_TOTAL, 0 AS RESIDENTS_TOTAL, 0 AS PARTY_TOTAL, + 0 AS OVER_FIFTY_PARTY_TOTAL, 0 AS UNDER_FIFTY_PARTY_TOTAL, COUNT( ID ) AS COMPANY_REPRESENT_TOTAL + FROM + meta_epdc_enterprise_info + WHERE DEL_FLAG = 0 + GROUP BY DEPT_ID + ) total +GROUP BY + total.GRID_ID 0 N