题解 | #未完成率较高的50%用户近三个月答卷情况#

未完成率较高的50%用户近三个月答卷情况

http://www.nowcoder.com/practice/3e598a2dcd854db8b1a3c48e5904fe1c

SQL31

SELECT uid, start_month, COUNT(start_time) AS total_cnt, COUNT(submit_time) AS complete_cnt FROM( SELECT er.uid, er.start_time, er.submit_time, DATE_FORMAT(er.start_time, "%Y%m") AS start_month, DENSE_RANK() OVER (PARTITION BY er.uid ORDER BY DATE_FORMAT(er.start_time,"%Y%m") DESC) AS m_rank FROM exam_record er JOIN user_info ui USING (uid) WHERE er.uid IN ( SELECT uid FROM ( SELECT uid, ROW_NUMBER() OVER (ORDER BY 1 - COUNT(DISTINCT submit_time)/COUNT(DISTINCT start_time) DESC, uid) AS ir_rank FROM exam_record GROUP BY uid ) AS t1 JOIN( SELECT COUNT(DISTINCT uid) AS uid_cnt FROM exam_record ) AS t3 WHERE ir_rank <= CEILING(0.5*uid_cnt) ) AND ui.level IN (6, 7) ) t4 where t4.m_rank <= 3 GROUP BY t4.uid, t4.start_month ORDER BY uid

全部评论

相关推荐

12-20 11:26
复旦大学 Java
点赞 评论 收藏
分享
A_SOUL_Off...:疑似加班加出幻觉了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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