开发者社区> 游客gsgxy6yg6ydlm> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

SQL中累加的三种方法

简介: SQL中累加的三种方法
+关注继续查看

之前给小伙伴们介绍了三种去重的方法,虽然不能留言,但是看到大家的点赞和在看数都比较多,今天再给大家分享一下三种累加的方法。


有如下表ADD_NUM

image.png

我们希望实现如下结果:

image.png

开窗函数学过开窗函数的小伙伴肯定首先想到的就是它了,不错,开窗函数可以很快速的求解出来,具体写法如下:


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  ) AmountFROM  ADD_NUM A


笛卡尔积这种方法小伙伴们可能不常见,但是也可以用来求解累加,笛卡尔积其实就是两两组合形成一个集合,通过WHERE条件过滤出符合我们需要的结果集。


SELECT  A.OrderDate,  SUM (B.AMOUNT) AmountFROM  ADD_NUM ACROSS JOIN ADD_NUM BWHERE B.OrderDate <= A.OrderDateGROUP BY A.OrderDate


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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
防止网络DDoS攻击的三种方法
网络DDoS攻击可能对组织造成破坏性影响并带来严重损失。企业需要了解三种预防和响应DDoS攻击以确保网络安全的方法。
1641 0
如何清除某条SQL在库缓存中的执行计划
DBA 日常管理过程中会遇到需要把特定的sql语句的执行计划从shared pool 中清除或者需要重新生产新的执行计划的要求。通常的alter system flush shared_pool;或者重新执行信息统计又会造成较大的影响,所以可以使用oracle提供的dbms_shared_pool.purge 来清除某个特定的sql的执行计划。
666 0
AJAX从服务端获取数据的三种方法
本文为原创,如需转载,请注明作者和出处,谢谢!     在本文中将给出一个例子来介绍使用AJAX技术从服务端获得数据的三种方法。这个例子很简单,就是两个选择框(html中的标签),通过选中第一个select的某一项后,会从服务端得到一些数据,并加载到第2个select中。
737 0
61
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载