获取数据范围中的百分比

时间:2015-05-13 13:45:47

标签: mysql sql percentage

我是SQL的新手,我试图解决此问题。我有3张桌子:

-Question -回答 - 学生

学生可以回答问题,然后答案具有所选答案的属性,并且表格问题是对该问题的正确答案的归属。

答案有约会。

我需要在特定日期知道正确回答日期的百分比。

我提出了这个问题:

获取特定学生按日期做出的所有答案:

SELECT count(*) 
FROM answer an where an.StudentID = 'X1'
GROUP BY an.AnswerDate

按日期获得特定学生的正确答案:

SELECTCOUNT(*)     
FROM answer an1, question q1
where an1.questionID = q1.IDquestion
and an1.ChosenAnswer = q1.Answer
and an1.StudentID = 'X1'
GROUP BY an1.AnswerDate

现在我无法弄清楚如何加入它们,并获得百分比......

1 个答案:

答案 0 :(得分:0)

试试这个解决方案:

SELECT SUM(     

CASE   WHEN an1.ChosenAnswer = 1.Answer 
               THEN 1 
               ELSE 0 
       END) as Correct
 ,     COUNT(an1.ChosenAnswer) as Answers
 ,     SUM(     

CASE   WHEN an1.ChosenAnswer = 1.Answer 
               THEN 1 
               ELSE 0 
       END) / COUNT(an1.ChosenAnswer) * 100 as Percentage

FROM answer an1, question q1
where an1.questionID = q1.IDquestion
and an1.ChosenAnswer = q1.Answer
and an1.StudentID = 'X1'
GROUP BY an1.AnswerDate