BEGIN WITH max AS ( SELECT COUNT(*) AS maxAmount FROM one_etl.mgm_header WHERE Mgm_HeaderIsActive = 'Y' AND Mgm_HeaderType = 'L' AND Mgm_HeaderMgm_McuID = PID ), perItem AS ( SELECT COUNT(*) AS xTotalPerItem , Mcu_KelainanGroupName , Mgm_HeaderMgm_McuID FROM one_etl.mgm_header JOIN one_etl.mgm_detail ON Mgm_HeaderID = Mgm_DetailMgm_HeaderID AND Mgm_HeaderIsActive = 'Y' AND Mgm_DetailIsActive = 'Y' JOIN one_etl.mcu_kelainangroup ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID AND Mcu_KelainanGroupIsActive = 'Y' WHERE Mgm_HeaderType = 'L' AND Mgm_HeaderMgm_McuID = PID GROUP BY Mgm_DetailMcu_KelainanGroupID ORDER BY xTotalPerItem DESC LIMIT 0, 10 ) SELECT perItem.xTotalPerItem , perItem.Mcu_KelainanGroupName , perItem.Mgm_HeaderMgm_McuID , (perItem.xTotalPerItem / max.maxAmount) * 100 AS Percentage FROM perItem , max; END