如果事先不知道答案的数量,则将问题表分为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;