Pokud není předem znám počet odpovědí, bylo by jednodušší rozdělit tabulku otázek na 2 – jednu pro otázky (id_otázky, text_zátazy) a jednu pro možnosti (id_otázky, id_výběru, text_výběru). Tabulku odpovědí lze vytvořit (id_otázky, id_odpovědi, id_výběru). Pak by se použilo něco jako následující (QID =ID otázky, kterou vybíráte):
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;
Vše, co se dělá, je spočítat celkový počet odpovědí ve vnitřním dotazu a poté pro každou volbu vydělit počet odpovědí s touto volbou celkovým počtem.