我是SQL的新手,正在尝试解决此查询。我有3张桌子:

-题
-回答
-学生

一个学生可以对一个问题做出答案,然后一个答案具有所选答案的属性,而表题则是对该问题的正确答案的属性。

答案有日期。

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

我做了这个查询:

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

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


现在我不知道该如何加入他们并获得该百分比...

最佳答案

试试这个解决方案:

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

07-27 18:14