问题:请你写出一个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