暂无图片
暂无图片
13
暂无图片
暂无图片
2
暂无图片

SQL中累加的三种方法

SQL数据库开发 2021-11-26
7533

点击关注上方“SQL数据库开发”,

设为“置顶或星标”,第一时间送达干货
SQL专栏
SQL基础知识第二版
SQL高级知识第二版
复制
之前给小伙伴们介绍了三种去重的方法,虽然不能留言,但是看到大家的点赞和在看数都比较多,今天再给大家分享一下三种累加的方法。


有如下表ADD_NUM

我们希望实现如下结果:


开窗函数
学过开窗函数的小伙伴肯定首先想到的就是它了,不错,开窗函数可以很快速的求解出来,具体写法如下:
SELECT  
OrderDate,
SUM(Amount) OVER(ORDER BY OrderDate) Amount
FROM Add_Num
复制


子查询
第二种就是子查询了,这种方法也是比较常见的,特别是在MySQL 不支持开窗函数的时候,用到的比较多
SELECT
A.OrderDate,
(
    SELECT SUM (B.AMOUNT)
FROM ADD_NUM B
WHERE B.OrderDate <= A.OrderDate
) Amount
FROM  ADD_NUM A
复制


笛卡尔积
这种方法小伙伴们可能不常见,但是也可以用来求解累加,笛卡尔积其实就是两两组合形成一个集合,通过WHERE条件过滤出符合我们需要的结果集。
SELECT
A.OrderDate,
SUM (B.AMOUNT) Amount
FROM ADD_NUM A
CROSS JOIN ADD_NUM B
WHERE B.OrderDate <= A.OrderDate
GROUP BY A.OrderDate
复制


以上三种方法均能实现累加功能,小伙伴们可以自己动手写一下,其中涉及的知识点也可以好好研究一下。

最后给大家分享我写的SQL两件套:《SQL基础知识第二版》《SQL高级知识第二版》的PDF电子版。里面有各个语法的解释、大量的实例讲解和批注等等,非常通俗易懂,方便大家跟着一起来实操。

有需要的可以下载学习,只需要在下面的公众号「数据前线(非本号),后台回复关键字:SQL,就行

数据前线

后台回复关键字:1024,获取一份精心整理的技术干货
后台回复关键字:进群,带你进入高手如云的交流群。

推荐阅读

复制
文章转载自SQL数据库开发,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

星星之火
暂无图片
1年前
评论
暂无图片 0
明天会更好,明年会更好,来生会更好。
1年前
暂无图片 点赞
评论
筱悦星辰
暂无图片
1年前
评论
暂无图片 0
告别了过往的方寸天地,才有机会遇见未来的星辰大海。人生的种种经历,不过是为了让你在未来某天散发更耀眼的光。
1年前
暂无图片 点赞
评论