Ако броят на отговорите не е известен предварително, би било по-лесно да разделите таблицата с въпроси на 2 - една за въпросите (question_id, question_text) и една за избор (question_id, choice_id, choice_text). Таблицата с отговори може да се превърне в (question_id, answer_id, choice_id). След това избирането му би използвало нещо като следното (QID =ID на въпроса, който избирате):
SELECT choice,
(COUNT(*) / (SELECT COUNT(*)
FROM answers
WHERE answers.question_id = QID)) * 100 AS percentage
FROM choices
INNER JOIN answers
ON choices.choice_id = answers.choice_id
AND choices.question_id AND choices.question_id
WHERE choices.question_id = QID
GROUP BY choice_id;
Всичко, което прави, е да преброи общия брой отговори във вътрешната заявка, след което за всеки избор да разделите броя на отговорите с този избор на общия брой.