在查询数据时,有时候需要把数据进行累加查询,但希望从SQL中一次性把数据查询出来,今天给大家分享一下三种累加的方法。
1.子查询,这种方法是比较常见的,特别是在MySQL 不支持开窗函数的时候,用到的比较多
SELECT A.OrderDate,( SELECT SUM(B.AMOUNT) FROM ADD_NUM B
WHERE B.OrderDate <= A.OrderDate ) Amount FROM ADD_NUM A
2.笛卡尔积,这种方法可能不常见,但是也可以用来求解累加,笛卡尔积其实就是两两组合形成一个集合,通过WHERE条件过滤出符合我们需要的结果集
SELECT A.OrderDate,SUM(B.AMOUNT) Amount FROM ADD_NUM ACROSS JOIN ADD_NUM B WHERE B.OrderDate <= A.OrderDate
GROUP BY A.OrderDate
3.开窗函数,学过开窗函数的小伙伴肯定首先想到的就是它了,不错,开窗函数可以很快速的求解出来,不过 msyql >= mysql8
SELECT OrderDate,SUM(Amount)
OVER (ORDER BY OrderDate) Amount
FROM Add_Num

優(yōu)網科技秉承"專業(yè)團隊、品質服務" 的經營理念,誠信務實的服務了近萬家客戶,成為眾多世界500強、集團和上市公司的長期合作伙伴!
優(yōu)網科技成立于2001年,擅長網站建設、網站與各類業(yè)務系統(tǒng)深度整合,致力于提供完善的企業(yè)互聯(lián)網解決方案。優(yōu)網科技提供PC端網站建設(品牌展示型、官方門戶型、營銷商務型、電子商務型、信息門戶型、微信小程序定制開發(fā)、移動端應用(手機站、APP開發(fā))、微信定制開發(fā)(微信官網、微信商城、企業(yè)微信)等一系列互聯(lián)網應用服務。