Nếu không biết trước số câu trả lời, sẽ đơn giản hơn nếu chia bảng câu hỏi thành 2 - một cho các câu hỏi (question_id, question_text) và một cho các lựa chọn (question_id, choice_id, choice_text). Bảng câu trả lời có thể được tạo thành (question_id, answer_id, choice_id). Sau đó, chọn nó sẽ được sử dụng như sau (QID =ID của câu hỏi bạn đang chọn):
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;
Tất cả những việc này là đếm tổng số câu trả lời trong truy vấn bên trong, sau đó đối với mỗi lựa chọn, hãy chia số câu trả lời có lựa chọn đó cho tổng số.