• SQL中累加的三种方法


    之前给小伙伴们介绍了三种去重的方法,虽然不能留言,但是看到大家的点赞和在看数都比较多,今天再给大家分享一下三种累加的方法。

     

    有如下表ADD_NUMSQL中累加的三种方法_sql基础

    我们希望实现如下结果:

    SQL中累加的三种方法_sql基础_02

    开窗函数学过开窗函数的小伙伴肯定首先想到的就是它了,不错,开窗函数可以很快速的求解出来,具体写法如下:

    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
      ) Amount
    FROM  ADD_NUM A

    笛卡尔积这种方法小伙伴们可能不常见,但是也可以用来求解累加,笛卡尔积其实就是两两组合形成一个集合,通过WHERE条件过滤出符合我们需要的结果集。

    SELECT
      A.OrderDate,
      SUM (B.AMOUNT) Amount
    FROM  ADD_NUM A
    CROSS JOIN ADD_NUM B
    WHERE B.OrderDate <= A.OrderDate
    GROUP BY A.OrderDate

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

    来源:https://blog.51cto.com/u_13002900/5278337

  • 相关阅读:
    逐步实现python版wc命令
    Linux中短横线(-)小记
    memcached启动脚本(class练习)
    nginx启动脚本(class练习)
    Python-类的方法
    re模块
    shutil模块
    时间模块(time/date)
    迭代器
    生成器
  • 原文地址:https://www.cnblogs.com/konglxblog/p/16411600.html
Copyright © 2020-2023  润新知