题解 | #浙大不同难度题目的正确率#
浙大不同难度题目的正确率
https://www.nowcoder.com/practice/d8a4f7b1ded04948b5435a45f03ead8c
第一次接触程序员是看了一本女主程序员的小说,哈哈哈哈,现在自己成为了一个程序员
这可能就是没找到程序员对象,我就先来当当程序员呗
怎莫说,这怎么不算是天赋呢
写在前面
根据最终表的结果来决定要 select 的对象
select 选择多个对象查询时候,各个对象之间用逗号间隔
注意表连接的时候唯一匹配的字符和连接方式
易错点1:
本题计算题目正确率的时候,我一开始用了sum(if (qpd.result ='right',1,0)/ count(distinct qpd.device_id)
错误原因在于:以每次答题的设备计数来计数作为答题总数的时候,不需要对设备数去重
因为存在多次答题,然后某一次正确的情况
这里是不需要去重的。
易错点2:
没有仔细观察最终的输出结果,是按照correct_rate 升序排列的
在最后没有加order by correct_cnt
正确代码如下:
select qd.difficult_level, sum(if(qpd.result='right',1,0))/ count(qpd.device_id) correct_rate from question_practice_detail qpd join question_detail qd on qd.question_id = qpd.question_id join user_profile up on qpd.device_id = up.device_id and university = '浙江大学' group by difficult_level order by correct_rate
#sql#