我是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