Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 查找每个项目占总数的百分比_Mysql_Sql - Fatal编程技术网

Mysql 查找每个项目占总数的百分比

Mysql 查找每个项目占总数的百分比,mysql,sql,Mysql,Sql,我有一个MYSQL数据库,可以跟踪学生在考试中的对与错。它有Student、questionID和trakStatus列(记录正确/错误)。我想汇编的是一份按问题ID列出的清单,其中列出了每一个问题的正确率 目前,当我运行SQL行时,它会弹出一个问号列表,但所有问号都使用相同的百分比计算,即最后一个问题的百分比。输出如下所示: **QuestionID** **Percentage** 1001 .2459 1002 .2459 1003

我有一个MYSQL数据库,可以跟踪学生在考试中的对与错。它有Student、questionID和trakStatus列(记录正确/错误)。我想汇编的是一份按问题ID列出的清单,其中列出了每一个问题的正确率

目前,当我运行SQL行时,它会弹出一个问号列表,但所有问号都使用相同的百分比计算,即最后一个问题的百分比。输出如下所示:

**QuestionID**   **Percentage**
1001              .2459
1002              .2459
1003              .2459
etc.
我想要的是每个问题ID的计算百分比。以下是我当前使用的SQL:

SELECT questionID, 
(SELECT COUNT( * ) 
FROM  storedQuestions 
WHERE trakStatus =  'Wrong') / 
(SELECT COUNT( * ) 
FROM  storedQuestions 
WHERE (
trakStatus =  'Wrong'
OR trakStatus =  'Right'
) ) AS Percentage
FROM storedQuestions
GROUP BY questionID

我不知道我错在哪里。这似乎应该奏效。任何建议都将不胜感激。谢谢

您不需要子查询,只需要条件聚合:

SELECT questionID, 
       SUM(trakStatus = 'Wrong') / SUM(trakStatus IN ('Wrong', 'Right')) as Percentage
FROM storedQuestions
GROUP BY questionID;
如果
trackStatus
仅采用这两个值,则可以将其简化为:

SELECT questionID, 
       AVG(trakStatus = 'Wrong') as Percentage
FROM storedQuestions
GROUP BY questionID;

您不需要子查询,只需要条件聚合:

SELECT questionID, 
       SUM(trakStatus = 'Wrong') / SUM(trakStatus IN ('Wrong', 'Right')) as Percentage
FROM storedQuestions
GROUP BY questionID;
如果
trackStatus
仅采用这两个值,则可以将其简化为:

SELECT questionID, 
       AVG(trakStatus = 'Wrong') as Percentage
FROM storedQuestions
GROUP BY questionID;

哇,这很简单。非常感谢!哇,这很简单。非常感谢!