题解 | #牛客每个人最近的登录日期(六)#

牛客每个人最近的登录日期(六)

http://www.nowcoder.com/practice/572a027e52804c058e1f8b0c5e8a65b4

问题:请你写出一个sql语句查询刷题信息,包括: 用户的名字,以及截止到某天,累计总共通过了多少题,并且查询结果先按照日期升序排序,再按照姓名升序排序,有登录却没有刷题的哪一天的数据不需要输出,

问题拆解:1.只需要表格2passing_number和表格3user

2.统计每天每个name的累积通过题目次数,将表格2passing_number两张同样的表链接在一起,设定筛选条件,左表p1的user_id=右表p2的user_id,and p1.date>=p2.date,然后提取p1的user_id、date,p2的number求和就是累积日期的通过题目数量,

3.把上述和表3user链接,将字段user_id替换成name 即可

4.根据字段name和date分组,再根据顺序排序即可。

SELECT u.name u_n, p1.date, SUM(p2.number) ps_num FROM passing_number p1
JOIN passing_number p2 ON p1.user_id=p2.user_id
JOIN user u ON p1.user_id=u.id
WHERE p1.user_id=p2.user_id AND p1.date>=p2.date
GROUP BY u.name, p1.date
ORDER BY p1.date, u.name
全部评论

相关推荐

秋招投简历提醒助手:个人经验是,一般面二十场左右就会进入侃侃而谈阶段。我今年七月末的时候开始的第一次面试,都是很多不会,回复很慢。后面慢慢迭代,到九月中的时候基本上面啥说啥,很放松的状态
远程面试的尴尬瞬间
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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