乐趣区

关于后端:SQL面试窗口函数如何实现累加

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 多平台公布

退出移动版