bạn có thể để kết hợp một tổng tổng mà không được nhóm hoặc tách ra và chia nó cho truy vấn tổng của bạn. theo cách này, bạn chỉ thực hiện tổng số lần chọn một lần để thời gian chạy nhanh hơn
SELECT cat, sum_atual, sum_atual/total_atual as percent_atual
FROM
( SELECT categories.cat AS cat, SUM(atual) AS sum_atual
FROM `table1`
JOIN categories ON table1.category_id=categories.id
GROUP BY categoria
) t
LEFT JOIN
( SELECT SUM(atual) as total_atual
FROM `table1`
) t1