Menu
CoddyTech

累计总计

本课属于 Coddy SQL 学习旅程的“进阶内容”单元。第 25 课,共 27 课。

累计总和是在窗口中使用 SUM 并配合 ORDER BY 得到的:这样聚合结果就会随着每一行逐步累加。

SELECT day, amount,
       SUM(amount) OVER (ORDER BY day) AS running_total
FROM revenue

如果没有 ORDER BY,窗口会覆盖所有行,因此每一行都会得到总计。有了它,窗口就会按该顺序每次扩展一行,因此每一行只能看到自身以及它之前的所有行。

添加 PARTITION BY,按组重置累计总和,例如按地区逐日计算收入的累计总和。

challenge icon

挑战

简单

可用的表和列:

  • revenue: region, day, amount

返回 region、day、amount 和 region_running_total:截至当天(含当天)该区域的累计 amount。每个区域的累计总额都应重新开始计算。

在窗口中使用 PARTITION BY。先按 region 排序,再按 day 排序。

亲手试试

SELECT region, day, amount,
       -- 在这里添加 region_running_total 列
FROM revenue
ORDER BY region, day
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

进阶内容中的所有课

自己练习: SQL 在线编辑器