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

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

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

解这道题其实就是把三个表水平连接成一个"宽表",这个宽表包含了所有字段。 而水平连接一般使用连接来实现,我这边使用了内连接。 接下来就是确认连接的过滤条件以及按什么字段进行分组。 最后确定用户平均答题数即等于按分组统计下的:答题总数/去重之后的用户数,SQL的写法可以参考我下面这个。 SELECT up.university,qd.difficult_level, COUNT(qd.question_id) / COUNT(DISTINCT qpd.device_id) AS avg_answer_cnt FROM question_practice_detail AS qpd INNER JOIN user_profile AS up ON qpd.device_id = up.device_id AND up.university = '山东大学' INNER JOIN question_detail AS qd ON qpd.question_id = qd.question_id AND qpd.result IS NOT NULL GROUP BY up.university,qd.difficult_level;

全部评论

相关推荐

拒绝无效加班的小师弟很中意你:求职意向没有,年龄、课程冗余信息可以删掉,需要提升项目经历。排版需要修改。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务