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

#笔试#
全部评论

相关推荐

09-23 20:50
门头沟学院 Java
有一道异或题,很有意思,给出了二进制以外的异或定义,还挺有道理的
我不是本人:感觉题目好难啊一个也没ac
投递百度等公司10个岗位
点赞 评论 收藏
分享
牛客40297450...:不是研究生强,是你强
点赞 评论 收藏
分享
三轮业务+一轮HR 俺有点没招了。。。
此刻我身在乌云中:hr打电话问我能不能提前实习,我说不可以,然后他说那可能要横向排序等结果。结果五分钟立马挂了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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