SELECT ID,MyContent,1.0*(SELECT COUNT(*) FROM ExamingPaperSave WHERE Answer <> MyAnswer) / (SELECT COUNT(*) FROM ExamingPaperSave)*100 AS 错误率 FROM ExamingPaperSave GROUP BY ID,MyContent ORDER BY 错误率
每个ID对应一题目,题目在显示出来的时候不能重复显示,显示的结果为下面三个字段
题目ID MyContent 错误率
这个错误率最罗嗦了。要求算出每题的错误率后,按照错误率降序排序,如果单独显示不重复的题目ID MyContent 倒简单,关键是加了个错误率后,得出的结果老是一样,都为48.8,不可能每题的错误率都相同的哦。
求帮助!
------解决思路----------------------
错误率中分子分母都是有count(*)都只会有一个值,一个值除以一个值当然就只有一个值,实际是作为长两列出现了,楼主应该改下分子分母语句中可能需要加group by
------解决思路----------------------
SELECT ID,MyContent,1.0*(SELECT COUNT(*) FROM ExamingPaperSave WHERE Answer <> MyAnswer and id=a.id)
/ (SELECT COUNT(*) FROM ExamingPaperSave where id=a.id)*100 AS 错误率
FROM ExamingPaperSave a GROUP BY a.ID,a.MyContent ORDER BY 错误率
楼主的语句算的是总的错率,每行当然一样了。
------解决思路----------------------
错误率的计算有问题,都是全部计算当然是一样的,你要价格题目ID作为条件来计算啊