题解 | #统计每个学校各难度的用户平均刷题数#

统计每个学校各难度的用户平均刷题数

https://www.nowcoder.com/practice/5400df085a034f88b2e17941ab338ee8

select university, difficult_level,count(qpd.question_id)/count( distinct(qpd.device_id))
from user_profile as up ,question_practice_detail as qpd,question_detail as qd
where up.device_id = qpd.device_id and qpd.question_id = qd.question_id
group by university,difficult_level;
select university,difficult_level,count(qpd.question_id)/count(distinct(qpd.device_id))
from user_profile as up
JOIN question_practice_detail as qpd on up.device_id = qpd.device_id
join question_detail as qd on qd.question_id = qpd.question_id
group by university,difficult_level

两种解题方法都没答对,第一种考虑不周全,没有使用distinct语句去重,除数和被除数还搞反了。where语句没写对,后面三个表的相同关键字居然都用device_id来等同,第三张表question_detail都没有device_id的关键字!改正后也忘记再中间使用and语句。只有一个GROUP BY语句还写对了。

第二种语句方法就只能抄写答案了,思路是对的,但是没想到在这里用两个join on语句来表示三个表的字段进行关联。书写要仔细,前后有三个地方的字母书写出现了问题,groupby字母写错了,question_practice_detail里居然有两个字母写错了,question写错了,detail少了字母a。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务