题解 | #统计每个用户的平均刷题数#

统计每个用户的平均刷题数

https://www.nowcoder.com/practice/f4714f7529404679b7f8909c96299ac4

select up.university, qd.difficult_level, count(qpd.question_id)/count(distinct up.device_id) avg_cnt  from 
user_profile up 
inner join question_practice_detail qpd 
on up.device_id = qpd.device_id
inner join question_detail qd 
on qpd.question_id = qd.question_id
where up.university = '山东大学'
group by up.university, qd.difficult_level

在上一题的基础上,增加了对学校的条件,这里有两种方式来处理,主要是让我们理解where条件和having条件的执行时机以及数据得扫描数量;

如果user_profile的数据较大,那么使用where在筛选数据时就通过条件筛掉部分数据,可以减少后续分组的数据量。

而使用having则是在分组完成后,再对结果进行拆筛选。

全部评论

相关推荐

04-29 22:35
门头沟学院 Java
牛友说改了名字能收到offer:旧图新发查看图片
点赞 评论 收藏
分享
lllllkin:感觉可以精简到一页简历,有些排版感觉不是必须的。 时间线越早的,你自己越熟悉的放前面。描述可以更精简些,一些问题解决感觉可以不用写具体技术栈,卖个关子,等面试官问。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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