mysql - 如何使用子查询计算同一个表中的特定字段的数量并为这些子查询分配特定名称以获取数据

标签 mysql

我正在 MySQL 数据库中保存一些 MCQ 类型的问题和用户的答案。 这是根据给定问题保存所有用户答案的​​表。

我想根据question_idsession_code获取数据。 这些 MCQ 问题只有 4 个答案。 因此,如果我采用 question_id = 8,我想获得答案 1 到 4 的所有计数。 像这样:

我尝试使用这样的代码来执行此操作,但它不起作用......

SELECT DISTINCT question_id , (select COUNT(user_selected_answer)
from user_answers
where 
session_code = 8888 and user_selected_answer = 1 ) as Ans1 ,
(select COUNT(user_selected_answer) from user_answers where session_code = 8888 and user_selected_answer = 2 ) as Ans2 ,
(select COUNT(user_selected_answer) from user_answers where session_code = 8888 and user_selected_answer = 3 ) as Ans3 ,
(select COUNT(user_selected_answer) from user_answers where session_code = 8888 and user_selected_answer = 4 ) as Ans4 
FROM `user_answers` 
WHERE session_code = 8888

请帮我解决这个问题... 谢谢。

最佳答案

尝试使用group by

SELECT COUNT(user_selected_answer) FROM user_answers WHERE session_code = 888 GROUP BY question_id

关于mysql - 如何使用子查询计算同一个表中的特定字段的数量并为这些子查询分配特定名称以获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52250579/

相关文章:

Mysql 在选择非索引字段时不使用索引

mysql - 替换数据库中的值

php - 如何在php中锁定mysql表

php - Laravel 对象数据被覆盖了吗?

php - 如何在 PHP MySQL 中查找任何节点的子节点?

java - Netbeans JAVA MYSQL DB 异常行为 - 关闭应用程序后无法检索数据 - JDBC 驱动程序

mysql - 整数格式的mysql日期迁移

mysql - 从具有不同列的不同表中连接两个 SELECTS

php - 以较大的数字启动 MySQL 数据库 id 有好处吗?

mysql - 如何连接MVC和MYSQL