|
|
@ -90,7 +90,7 @@ |
|
|
|
SELECT |
|
|
|
AGENCY_ID, |
|
|
|
COUNT( ID ) AS "count", |
|
|
|
SUM( IFNULL( b.score, 0 ) ) AS "sum" |
|
|
|
SUM( IFNULL( b.score, 80 ) ) AS "ratio" |
|
|
|
FROM |
|
|
|
( SELECT f.ID, f.AGENCY_ID FROM fact_origin_project_main_daily f |
|
|
|
INNER JOIN dim_agency da ON f.FINISH_ORG_IDS LIKE concat('%', da.ID, '%') |
|
|
@ -102,7 +102,7 @@ |
|
|
|
LEFT JOIN ( |
|
|
|
SELECT |
|
|
|
PROJECT_ID, |
|
|
|
SUM( CASE ACTION_CODE WHEN 'bad' THEN 60 WHEN 'perfect' THEN 100 ELSE 80 END ) AS score |
|
|
|
AVG( CASE ACTION_CODE WHEN 'bad' THEN 60 WHEN 'perfect' THEN 100 ELSE 80 END ) AS score |
|
|
|
FROM |
|
|
|
fact_origin_project_log_daily |
|
|
|
WHERE |
|
|
@ -110,6 +110,7 @@ |
|
|
|
OR ACTION_CODE = 'good' |
|
|
|
OR ACTION_CODE = 'perfect') |
|
|
|
AND CUSTOMER_ID = #{customerId} |
|
|
|
AND MONTH_ID = #{monthId} |
|
|
|
GROUP BY |
|
|
|
PROJECT_ID |
|
|
|
) b ON a.ID = b.PROJECT_ID |
|
|
@ -254,70 +255,70 @@ |
|
|
|
</select> |
|
|
|
<select id="selectGridSatisfaction" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO"> |
|
|
|
SELECT |
|
|
|
a.ORG_ID, |
|
|
|
a.sum, |
|
|
|
IFNULL(b.count, 0) AS "count" |
|
|
|
GRID_ID AS "orgId", |
|
|
|
COUNT( score >= 80 OR NULL ) AS 'count', |
|
|
|
COUNT( ID ) AS 'sum' |
|
|
|
FROM |
|
|
|
(SELECT |
|
|
|
ORG_ID, |
|
|
|
COUNT( ID ) AS "sum" |
|
|
|
FROM |
|
|
|
fact_origin_project_log_daily |
|
|
|
WHERE |
|
|
|
1 = 1 |
|
|
|
AND ( ACTION_CODE = 'bad' OR ACTION_CODE = 'good' OR ACTION_CODE = 'perfect' ) |
|
|
|
AND CUSTOMER_ID = #{customerId} |
|
|
|
AND MONTH_ID = #{monthId} |
|
|
|
GROUP BY |
|
|
|
ORG_ID) a |
|
|
|
LEFT JOIN |
|
|
|
(SELECT |
|
|
|
ORG_ID, |
|
|
|
COUNT( ID ) AS "count" |
|
|
|
FROM |
|
|
|
fact_origin_project_log_daily |
|
|
|
WHERE |
|
|
|
1 = 1 |
|
|
|
AND ( ACTION_CODE = 'good' OR ACTION_CODE = 'perfect' ) |
|
|
|
AND CUSTOMER_ID = #{customerId} |
|
|
|
AND MONTH_ID = #{monthId} |
|
|
|
GROUP BY |
|
|
|
ORG_ID) b |
|
|
|
ON a.ORG_ID = b.ORG_ID |
|
|
|
( |
|
|
|
SELECT |
|
|
|
fm.GRID_ID, |
|
|
|
fm.ID, |
|
|
|
IFNULL( fl.score, 80 ) AS "score" |
|
|
|
FROM |
|
|
|
fact_origin_project_main_daily fm |
|
|
|
LEFT JOIN ( |
|
|
|
SELECT |
|
|
|
f.PROJECT_ID, |
|
|
|
AVG( CASE ACTION_CODE WHEN 'bad' THEN 60 WHEN 'perfect' THEN 100 ELSE 80 END ) AS score |
|
|
|
FROM |
|
|
|
fact_origin_project_log_daily f |
|
|
|
WHERE |
|
|
|
( ACTION_CODE = 'bad' OR ACTION_CODE = 'good' OR ACTION_CODE = 'perfect' ) |
|
|
|
AND f.CUSTOMER_ID = #{customerId} |
|
|
|
AND f.MONTH_ID = #{monthId} |
|
|
|
GROUP BY |
|
|
|
PROJECT_ID |
|
|
|
) fl ON fm.ID = fl.PROJECT_ID |
|
|
|
WHERE fm.CUSTOMER_ID = #{customerId} |
|
|
|
AND fm.MONTH_ID = #{monthId} |
|
|
|
) a |
|
|
|
GROUP BY |
|
|
|
GRID_ID |
|
|
|
</select> |
|
|
|
<select id="selectOrgSatisfaction" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO"> |
|
|
|
SELECT |
|
|
|
a.AGENCY_ID, |
|
|
|
a.sum, |
|
|
|
IFNULL(b.count, 0) AS "count" |
|
|
|
AGENCY_ID, |
|
|
|
COUNT( score >= 80 OR NULL ) AS 'count', |
|
|
|
COUNT( ID ) AS 'sum' |
|
|
|
FROM |
|
|
|
(SELECT |
|
|
|
f.AGENCY_ID, |
|
|
|
COUNT( f.ID ) AS "sum" |
|
|
|
FROM |
|
|
|
fact_origin_project_log_daily f |
|
|
|
INNER JOIN dim_agency da ON f.AGENCY_ID = da.ID AND da.`LEVEL` = #{level} |
|
|
|
WHERE |
|
|
|
1 = 1 |
|
|
|
AND ( ACTION_CODE = 'bad' OR ACTION_CODE = 'good' OR ACTION_CODE = 'perfect' ) |
|
|
|
AND f.CUSTOMER_ID = #{customerId} |
|
|
|
AND f.MONTH_ID = #{monthId} |
|
|
|
GROUP BY |
|
|
|
f.AGENCY_ID) a |
|
|
|
LEFT JOIN |
|
|
|
(SELECT |
|
|
|
f.AGENCY_ID, |
|
|
|
COUNT( f.ID ) AS "count" |
|
|
|
FROM |
|
|
|
fact_origin_project_log_daily f |
|
|
|
INNER JOIN dim_agency da ON f.AGENCY_ID = da.ID AND da.`LEVEL` = #{level} |
|
|
|
WHERE |
|
|
|
1 = 1 |
|
|
|
AND ( ACTION_CODE = 'good' OR ACTION_CODE = 'perfect' ) |
|
|
|
AND f.CUSTOMER_ID = #{customerId} |
|
|
|
AND f.MONTH_ID = #{monthId} |
|
|
|
GROUP BY |
|
|
|
f.AGENCY_ID) b |
|
|
|
ON a.AGENCY_ID = b.AGENCY_ID |
|
|
|
( |
|
|
|
SELECT |
|
|
|
fm.AGENCY_ID, |
|
|
|
fm.ID, |
|
|
|
IFNULL( fl.score, 80 ) AS "score" |
|
|
|
FROM |
|
|
|
fact_origin_project_main_daily fm |
|
|
|
INNER JOIN dim_agency da ON fm.AGENCY_ID = da.ID |
|
|
|
AND da.`LEVEL` = #{level} |
|
|
|
LEFT JOIN ( |
|
|
|
SELECT |
|
|
|
f.PROJECT_ID, |
|
|
|
AVG( CASE ACTION_CODE WHEN 'bad' THEN 60 WHEN 'perfect' THEN 100 ELSE 80 END ) AS score |
|
|
|
FROM |
|
|
|
fact_origin_project_log_daily f |
|
|
|
INNER JOIN dim_agency da ON f.AGENCY_ID = da.ID |
|
|
|
AND da.`LEVEL` = #{level} |
|
|
|
WHERE |
|
|
|
( ACTION_CODE = 'bad' OR ACTION_CODE = 'good' OR ACTION_CODE = 'perfect' ) |
|
|
|
AND f.CUSTOMER_ID = #{customerId} |
|
|
|
AND f.MONTH_ID = #{monthId} |
|
|
|
GROUP BY |
|
|
|
PROJECT_ID |
|
|
|
) fl ON fm.ID = fl.PROJECT_ID |
|
|
|
WHERE fm.CUSTOMER_ID = #{customerId} |
|
|
|
AND fm.MONTH_ID = #{monthId} |
|
|
|
) a |
|
|
|
GROUP BY |
|
|
|
AGENCY_ID |
|
|
|
</select> |
|
|
|
</mapper> |