在单个MySQL查询中,如何根据以下输出测试在测试中获得的百分比/分数。给出的答案是test_answer_id,正确的答案是correct_answer_id。 在下面的例子中,3个得分错误,所以应该返回70%
id doctor_id test_id test_question_id test_answer_id correct_test_answer_id 168836 862 123 2706 3353 3353 168837 862 123 2707 3354 3354 168838 862 123 2708 3357 3357 168839 862 123 2709 3358 3359 168840 862 123 2710 3360 3360 168841 862 123 2711 3363 3363 168842 862 123 2712 3365 3365 168843 862 123 2713 3367 3366 168844 862 123 2714 3369 3369 168845 862 123 2715 3370 3371
答案 0 :(得分:1)
这是查询。您只需在问题总数上划分正确答案的数量:
select doctor_id,
test_id,
sum(case when test_answer_id = correct_test_answer_id
then 1 else 0 end) * 100.0 / count(*)
from table
group by doctor_id, test_id