运行聚合,是随着时间积累值的聚合。
在本例中,我们假设存在ordertotalbyyear视图,该视图显示按年的总订单数量,查看一下其中的内容:
SELECT orderyear,qty
FROM ordertotalbyyear
输出如下
order qty
2007 25489
2008 16247
2006 9581
假设需要返回每年的订单年度、数量和经过年度的运行总量,
也就是说,每一年,计算到之前年度的数量之和。所以,视图中最早年度2006的记录,运行总量等于
当年的数量,第二年2007,运行总量是第一年加上第二年之和,依次类推。
要完成此任务,可以通过查询视图的一个实例,返回每年的订单年度和数量,然后,
对查询的第二个实例使用一个相关子查询来计算运行问题,此子查询筛选小于或等于当前年度的所有年度,
并对数量进行求和:
SELECT orderyear,qty,
(SELECT SUM(02.qty) FROM ordertotalbyyear AS 02 WHERE 02.orderyear<=01.orderyear) AS runqty
FROM ordertotalyear AS 01
ORDER BY orderyear
此查询返回以下输出:
orderyear qty runqty
2006 9581 9581
2007 25489 35070
2008 16237 51317
转载于:https://blog.51cto.com/jeffxi/1641120