Я позволил себе добавить столбец question_id, который будет использоваться для объединения каждого ответа с вопросом.
Question with the following columns : id, question, nranswers
Answers with the following columns: question_id, userid, answer
Вот ваш запрос:
SELECT answer, COUNT(*) AS answer_count
FROM Answers
GROUP BY answer
WHERE question_id = 22
ORDER by answer
Однако, если nranswers равен 3, но никто не выбрал 3 в качестве ответа, он не будет показан. Этот запрос показывает только те ответы, которые были выбраны.
Edit:
Чтобы получить счетчик всех доступных ответов, а не только выбранных, самым простым способом (по запросу) было бы избавиться от столбца Question.nranswers и добавить таблицу QuestionAnswers:
QuestionAnswers with the following columns: question_id, answer
Данные в QuestionAnswers должны выглядеть так:
quesiton_id answer
-------------------
22 1
22 2
22 3
Итак, у вас есть все возможные ответы на каждый вопрос.
Тогда запрос будет следующим:
SELECT qa.answer, COUNT(a.question_id) AS answer_count
FROM QuestionAnswers qa
LEFT OUTER JOIN Answers a
ON qa.question_id = a.question_id AND a.answer = qa.answer
GROUP BY qa.answer
WHERE qa.question_id = 22
ORDER by qa.answer