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

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

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

SELECT 
    t1.university,
    t3.difficult_level,
    COUNT(t2.question_id) / COUNT(DISTINCT(t2.device_id)) as avg_answer_cnt
from 
    user_profile as t1,
    question_practice_detail as t2,
    question_detail as t3
WHERE 
    t1.university = '山东大学'
    and t1.device_id = t2.device_id
    and t2.question_id = t3.question_id
GROUP BY
    t3.difficult_level;

全部评论
这是我见过最漂亮最简洁的sql写法,就是不太明白其中的逻辑,以后我也按照这个格式多试试,感谢大佬
9 回复 分享
发布于 2022-01-23 10:51
太低效,不可取
7 回复 分享
发布于 2022-04-09 17:56
厉害厉害 简洁美观 大神 膜拜
7 回复 分享
发布于 2022-01-06 09:05
大神都不需要连接表了,这么牛的
5 回复 分享
发布于 2022-02-16 11:28
请问用where连接表和内连接表有什么区别吗?
点赞 回复 分享
发布于 2022-07-31 15:54
我去,还能这么写的?
4 回复 分享
发布于 2022-02-15 11:45
消息 8120,级别 16,状态 1,第 2 行 选择列表中的列 'user_profile.university' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
4 回复 分享
发布于 2021-10-11 16:00
不是说使用group by时,select后只能是group by的分组字段和使用聚合函数包裹的字段吗,为什么select后还能跟university
3 回复 分享
发布于 2022-09-24 20:34 河南
效率低,不要因为代码好看,要高效~
3 回复 分享
发布于 2022-08-23 15:35 湖北
这不就是92的内连接,我感觉运行会慢点吧
2 回复 分享
发布于 2022-03-10 12:48
楼上的都没学过92语法?
2 回复 分享
发布于 2022-02-23 22:30
隐式链接(implicit join)不建议用噢
1 回复 分享
发布于 2023-07-26 12:16 美国
这样写老语法,不规范
点赞 回复 分享
发布于 03-24 14:57 福建
select university,difficult_level,round(count(question_id)/count(distinct(device_id)),4)as avg_answer_cnt from question_practice_detail as q left join user_profile as u on q.device_id=u.device_id left join question_detail as qd on q.question_id=qd.question_id where university='山东大学' group by difficult_level;
点赞 回复 分享
发布于 2025-12-03 14:36 广东
我甚至想开窗,人和人差距真的很大
点赞 回复 分享
发布于 2025-04-28 11:39 广东
为什么不能用id进行连接啊!哪个大佬可以解答一下
点赞 回复 分享
发布于 2024-09-11 17:36 北京
这也行
点赞 回复 分享
发布于 2024-06-15 22:35 上海
两个问题: select子句中的university没使用聚集函数导致SQL语法错误 select子句中的avg_answer_cnt未按照要求四舍五入导致结果精度错误
点赞 回复 分享
发布于 2024-03-18 23:17 北京
这是最优解吗?我写的是 select university, difficult_level, count(B.question_id) / COUNT(distinct (B.device_id)) as avg_answer_cnt from user_profile as A join question_practice_detail as B on A.device_id = B.device_id JOIN question_detail as C on B.question_id = C.question_id Group by university, difficult_level having university = '山东大学' 哪个运行的快点?
点赞 回复 分享
发布于 2023-07-13 15:06 广东
还有这种操作???打开了新大陆
点赞 回复 分享
发布于 2023-07-06 11:57 北京

相关推荐

04-13 11:19
门头沟学院 HTML5
NullPointe...:27实习的都快结束了吧
点赞 评论 收藏
分享
评论
499
79
分享

创作者周榜

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