我有3张桌子:
用户:
用户身份
名称
公司
年龄
问题:
SETID(标识同一组中的所有问题)
QUESTIONID
问题(例如“谁是美国总统?”)
回答“ A”
答案“ B”
回答“ C”
回答“ D”
正确答案(作为CA)
答案:
用户身份
答案1(作为AFQ1)
ANSWERFORQUESTION2(作为AFQ2)
回答3 ...(将是20个问题)
最后答案(如洛杉矶)<<
我有2个问题:
1-我需要计算每个答案的“正确答案”的百分比。
2-我需要计算每个答案的“正确答案”的百分比-对于公司“ A”,公司“ B” ...(将为5家公司)
解决问题1:
select
count(DISTINCT ANSWERS.USERID) as TOTAL,
sum(case when ANSWERS.AFQ1 = QUESTIONS.CA AND ANSWERS.LA = 21 AND QUESTIONS.QUESTIONID = 1 then 1 else 0 end) AT1,
sum(case when ANSWERS.AFQ2 = QUESTIONS.CA AND ANSWERS.LA = 21 AND QUESTIONS.QUESTIONID = 2 then 1 else 0 end) AT2,
(....until 20)
from ANSWERS, QUESTIONS
Where ANSWERS.LA = 21
有了这个,我得到了一个表,该表包含总答案(已完成= 21)-和AT1,AT2,AT3 ..,每个答案都有每个“正确答案”。
然后,我可以执行AT1 / TOTAL来获得所有%。
问题1可以。
但是我如何对第二期做同样的事情?
!
最佳答案
select
COMPANY,count(DISTINCT ANSWERS.USERID) as TOTAL,
sum(case when ANSWERS.AFQ1 = QUESTIONS.CA AND ANSWERS.LA = 21 AND QUESTIONS.QUESTIONID = 1 then 1 else 0 end) AT1,
sum(case when ANSWERS.AFQ2 = QUESTIONS.CA AND ANSWERS.LA = 21 AND QUESTIONS.QUESTIONID = 2 then 1 else 0 end) AT2,
(....until 20)
from ANSWERS a, QUESTIONS
join user u on u.userid = a.userid
Where ANSWERS.LA = 21
group by u.COMPANY
提示1:
join
,在Answer.Userid = User.userid上有USER表提示2:将
GROUP BY
用于COMPANY注意:我的语法可能是错误的。我已经使用了SQL Server语法。
关于mysql - 带有3个表的MYSQL计数正确答案(用户-答案-问题),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32818488/