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

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

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

解题步骤:
1、将三张表联结成一张表(INNER JOIN);
2、按大学和题目难度分组(GROUP BY);
3、选出大学为山东大学的部分(HAVING,该关键字针对分组进行过滤,WHERE关键字则是对每一条记录过滤);
4、选择要输出的字段(SELECT)。
代码如下:
SELECT university, difficult_level, COUNT(qpd.question_id)/COUNT(DISTINCT up.device_id) AS avg_answer_cnt
FROM user_profile AS up
    INNER JOIN
    question_practice_detail AS qpd
    ON
    up.device_id = qpd.device_id
    INNER JOIN
    question_detail as qd
    ON
    qpd.question_id = qd.question_id
GROUP BY up.university, qd.difficult_level
HAVING university='山东大学';


全部评论

相关推荐

码农索隆:想看offer细节
点赞 评论 收藏
分享
牛客nb666号:看数据范围, -1e4~1e4, 用一个计数数组存一下, 再按个数让k减到0就行; 堆排不是O(n)的, 快速选择算法是O(n)但随机性较强
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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