我是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
现在我无法弄清楚如何加入它们,并获得百分比......
答案 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