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

#笔试#
全部评论

相关推荐

06-26 19:47
中南大学 Java
悲,毕业了!这是个坏事儿啊!
爱睡觉的冰箱哥:《这是个好事啊》---峰哥浪走天涯
毕业后不工作的日子里我在...
点赞 评论 收藏
分享
05-29 09:02
门头沟学院 Java
点赞 评论 收藏
分享
“校招”、“3-5年经验”
xiaolihuam...:逆向工程不是搞外挂的吗,好像现在大学生坐牢最多的就是诈骗罪和非法侵入计算机系统罪,发美金,还居家办公,就是怕被一锅端,
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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