所有内容均为测试可用,真实
当前位置:绿茶加糖-郭保升 > 数据库资料 > 正文

SQL中累加的三种方法

今天再给大家分享一下三种累加的方法。
有如下表ADD_NUM
图片
 

我们希望实现如下结果:

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

 

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

 

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

 

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

版权保护: 本文由 绿茶加糖-郭保升 原创,转载请保留链接: https://www.guobaosheng.com/shujuku/381.html