第一步按user_id分组,并用date进行内部排序,用sum函数计算每个用户截止每个刷题日期的累计通过数目,即
(select p.user_id, p.date,
sum(number) over (partition by p.user_id order by p.date) as lj
from passing_number as p) as ps
第二步,将USER表与查询出来的结果的ID进行right join连接,最后对以上结果用name和date进行升序排序
select user.name as u_m,ps.date as date, ps.lj
from
user
right join
(select p.user_id, p.date,
sum(number) over (partition by p.user_id order by p.date) as lj
from passing_number as p) as ps
on user.id=ps.user_id
order by date,u_m