累计总计
本课属于 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,按组重置累计总和,例如按地区逐日计算收入的累计总和。
挑战
简单可用的表和列:
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
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
进阶内容中的所有课
自己练习: SQL 在线编辑器