SELECT peaEMP_CODEpewLEVEL_NAME peeSUGGESTED_LEVELCOUNT1 FROM PFQA_EXAMINE_EVALUATION pee LEFT JOIN PFQA_EVALUATION_APPRAISEE pea ON peaID = peeAPPRAISEE_ID LEFT JOIN PFQA_EXAMINE_WEIGHT pew ON pewI
除以分组前的总数无法直接在查询语句中计算,需要将查询结果导入到一个临时表中,然后使用另外一条SQL查询语句计算总数,并将总数与每个分组的数量相除。
首先,将原始查询语句作为子查询,将结果导入到一个临时表中:
CREATE TEMPORARY TABLE temp_result AS (
SELECT pea.EMP_CODE, pew.LEVEL_NAME, pee.SUGGESTED_LEVEL, COUNT(1) AS count
FROM PFQA_EXAMINE_EVALUATION pee
LEFT JOIN PFQA_EVALUATION_APPRAISEE pea ON pea.ID = pee.APPRAISEE_ID
LEFT JOIN PFQA_EXAMINE_WEIGHT pew ON pew.ID = pee.WEIGHT_ID
WHERE pee.activity_id = 'c9a813d114e33a2f46f6b17861952a7b'
AND EXISTS (
SELECT 1
FROM pfqa_examiner_activ_evaluation activ
WHERE pee.examiner_id = activ.examiner_id
AND activ.status = 3
)
GROUP BY pea.EMP_CODE, pew.LEVEL_NAME, pee.SUGGESTED_LEVEL
);
然后,使用另外一条SQL查询语句计算总数并将总数与每个分组的数量相除:
SELECT EMP_CODE, LEVEL_NAME, SUGGESTED_LEVEL, count, count / total AS ratio
FROM temp_result
CROSS JOIN (
SELECT COUNT(1) AS total
FROM temp_result
) t;
这样就可以得到每个分组的数量以及每个分组数量与总数的比例。
原文地址: https://www.cveoy.top/t/topic/i4lQ 著作权归作者所有。请勿转载和采集!