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  ) 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM