有如下表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 ) 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