SQL270热题---小经验加1

求每个用户截止到当前日期的刷题总量

分析:求总量肯定是使用sum( )函数,那么如何求解截止到当前日期的总数量呢(累计值)

错误解法

使用聚合函数sum()外加group by,单纯的聚合函数计算的是每个用户的当日刷题;

使用窗口函数sum()over(partition by user_id order by date),经计算的是用户每日的累积刷题量;

通过 ​窗口函数 的 partition by 和 order by 组合,实现了对每个用户按日期动态累计刷量的计算。

代码如下:

select u.name, p.date, sum(p.number)over(partition by user_id order by date) from user u join passing_number p on u.id = p.user_id

order by p.date, u.name ASC

#笔试#
全部评论

相关推荐

牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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