中等
技术面试0 次浏览

在 SQL 中,如何使用窗口函数计算每个分组内的累计和?

数据分析师
SQL窗口函数

答题要点

在 SQL 中,窗口函数可以方便地计算每个分组内的累计和。以常见的关系型数据库为例,假设我们有一个销售表 `sales`,包含 `product_id`(产品 ID)、`sale_date`(销售日期)和 `amount`(销售金额)三个字段,要计算每个产品的累计销售金额。 sql SELECT product_id, sale_date, amount, SUM(amount) OVER (PARTITION BY product_id ORDER BY sale_date) AS cumulative_sum FROM sales; 在上述 SQL 语句中,`SUM(amount) OVER (PARTITION BY product_id ORDER BY sale_date)` 是关键部分。`PARTITION BY product_id` 表示按照 `product_id` 进行分组,将数据按照产品 ID 划分成不同的组。`ORDER BY sale_date` 表示在每个组内按照销售日期进行排序。`SUM(amount)` 是聚合函数,计算每个组内的累计和。通过这种方式,我们可以得到每个产品在不同日期的累计销售金额。