计算具有不同表格的列中的某些值的计数
有两个表问题和答案。问题包含65个问题(其他方式65行)由问题的quiestionid和correcAnswer组成。答案表包含用户和用户的答案计算具有不同表格的列中的某些值的计数
我的经理让我建立这样的查询,应该告诉我们; 为每个问题有多少真实答案和错误答案。 答案总数的百分比(trueAnswerCount/answersCount)
还有一些人,我处理了他们,但上面的人很难,这是我迄今为止的尝试;
select SoruId as QuestionID, userId, UserAnswer, oss.CorrectAnswer,
case
When UserAnswer = CorrectAnswer Then 'TRUE'
else 'FALSE'
end
from OnlineSinav.Cevap osc
join OnlineSinav.Soru oss on osc.SoruId=oss.ID;
从上面所有的结果我需要的总真实计数和每个QuestionNo伪计数,用户ID告诉我,只有当问题的新65行属于新用户,所以我不需要它,但其令人毛骨悚然我怎么能实现这个?使用
以下SqlZim回答您所需要的聚合,QuestionNo
select
QuestionNo = osc.SoruId
, TrueCount = sum(case when UserAnswer = CorrectAnswer then 1 else 0 end)
, FalseCount = sum(case when UserAnswer = CorrectAnswer then 0 else 1 end)
, TruePercent = 100.0 * avg(case when UserAnswer = CorrectAnswer then 1.0 else 0.0 end)
, FalsePercent = 100.0 * avg(case when UserAnswer = CorrectAnswer then 0.0 else 1.0 end)
from OnlineSinav.Cevap osc
inner join OnlineSinav.Soru oss
on osc.SoruId=oss.ID
group by osc.SoruId
有条件聚集:
select
TrueCount = sum(case when UserAnswer = CorrectAnswer then 1 else 0 end)
, FalseCount = sum(case when UserAnswer = CorrectAnswer then 0 else 1 end)
from OnlineSinav.Cevap osc
inner join OnlineSinav.Soru oss
on osc.SoruId=oss.ID;
你忘了问题的汇总。 –
@JuanCarlosOropeza我认为你是对的,你可以提供详细信息,谢谢 – TyForHelpDude
@JuanCarlosOropeza Ack,这就是我得到的消息。 – SqlZim
Aaand你能帮助我找到每个问题的真假计数比率吗?我为另一列添加了这个,但现在工作; “,(100 * TrueCount/FalseCount)作为比例” – TyForHelpDude
不认真采取反对票。你必须和他们一起生活,接受并继续前进。 –
是的,谢谢胡安我在这里,因为这里比你更喜欢你。 – TyForHelpDude