Я думаю, вам нужно, чтобы процент делился на aspirasi_id
, добавьте предложение where в ваш подзапрос, например WHERE aspirasi_id = a.aspirasi_id
SELECT
a.aspirasi_id,
a.aspirasi_option_id,
(
COUNT(aspirasi_option_id) * 100 /
(SELECT
COUNT(*)
FROM
aspirasi_choices
WHERE aspirasi_id = a.aspirasi_id)
) AS total
FROM
aspirasi_choices a
GROUP BY a.aspirasi_id,
a.aspirasi_option_id
Демо
Или с помощью объединения вы можете переписать выше, как
SELECT
a.aspirasi_id,
a.aspirasi_option_id,
COUNT(aspirasi_option_id) * 100 / b.inner_total AS total
FROM
aspirasi_choices a
JOIN (SELECT
aspirasi_id,
COUNT(*) AS inner_total
FROM
aspirasi_choices
GROUP BY aspirasi_id) b USING (aspirasi_id)
GROUP BY a.aspirasi_id,
a.aspirasi_option_id
Демо