Sie können eine Gesamtsumme, die nicht gruppiert oder aufgeteilt ist, links zusammenfügen und durch Ihre Summenabfrage dividieren. Auf diese Weise führen Sie die Gesamtauswahl nur einmal durch, um die Laufzeit zu beschleunigen
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