SQL 窗口函数实现累加?
SQL 窗口函数能够用于实现各种计算,包含累加。在应用窗口函数进行累加时,能够应用 SUM() 函数联合 OVER 子句。OVER 子句定义了窗口,即要对哪些行进行计算。
假如有一个名为 sales 的表,其中蕴含销售额和销售日期信息,能够应用以下 SQL 语句计算每个销售日期的销售额累加值:
SELECT
sales_date, sales_amount, SUM(sales_amount) OVER (ORDER BY sales_date) AS running_total
FROM sales;
在上述语句中,OVER
子句指定了按销售日期升序排列的窗口,而后应用 SUM()
函数计算累加值,并将后果命名为 running_total。因而,每行记录将显示销售日期、销售额以及截至以后行的销售额累加值。
须要留神的是,应用窗口函数时须要思考性能问题,因为窗口函数须要对整个窗口进行计算,可能会影响查问的性能。
假如有一个名为 sales 的表,其中蕴含以下数据:
应用以下 SQL 语句计算每个销售日期的销售额累加值:
SELECT
sales_date, sales_amount,
SUM(sales_amount) OVER (ORDER BY sales_date) AS running_total
FROM sales;
将失去以下后果:
上述结果表明,截至每个销售日期的销售额累加值别离为 100、250、450、500 和 800。
本文由 mdnice 多平台公布