在查询数据时,有时候需要把数据进行累加查询,但希望从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

优网科技秉承"专业团队、品质服务" 的经营理念,诚信务实的服务了近万家客户,成为众多世界500强、集团和上市公司的长期合作伙伴!
优网科技成立于2001年,擅长网站建设、网站与各类业务系统深度整合,致力于提供完善的企业互联网解决方案。优网科技提供PC端网站建设(品牌展示型、官方门户型、营销商务型、电子商务型、信息门户型、微信小程序定制开发、移动端应用(手机站、APP开发)、微信定制开发(微信官网、微信商城、企业微信)等一系列互联网应用服务。