T-SQL 使用運行聚合

    運行聚合,是隨着時間積累值的聚合。

    在本例中,我們假設存在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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章