通常使用<代码>Stream Aggregate或Hash Aggregate
。
<编码> 简化“<<>代码”对结果进行分类,对结果进行扫描,并将每个新价值(不等于扫描中的最后一)。 它可以保留一组国家累计变量。
http://www.un.org/Depts/DGACM/index_french.htm 每一条目都保存了以散射错误为依据并更新的合计国家变量。
参看<代码>AVG。 它需要两种国家变量:sum
和count
。
grouper value
1 4
1 3
2 8
1 7
2 1
1 2
2 6
2 3
Stream Aggregate
首先,它需要区分价值观:
grouper value
1 4
1 3
1 7
1 2
2 8
2 1
2 6
2 3
然后,它保留一套国家变量,先入0
,并扫描分类结果:
grouper value sum count
-- Entered
-- Variables: 0 0
1 4 4 1
1 3 7 2
1 7 14 3
1 2 16 4
-- Group change. Return the result and reinitialize the variables
-- Returning 1, 4
-- Variables: 0 0
2 8 8 1
2 1 9 2
2 6 15 3
2 3 18 4
-- Group change. Return the result and reinitialize the variables
-- Returning 2, 4.5
-- End
Hash aggregate
仅对数值进行扫描,并将国家变量保留在散列表中:
grouper value
-- Hash miss. Adding new entry to the hash table
-- [1] (0, 0)
-- ... and updating it:
1 4 [1] (4, 1)
-- Hash hit. Updating the entry:
1 3 [1] (7, 2)
-- Hash miss. Adding new entry to the hash table
-- [1] (7, 2) [2] (0, 0)
-- ... and updating it:
2 8 [1] (7, 2) [2] (8, 1)
1 7 [1] (14, 3) [2] (8, 1)
2 1 [1] (14, 3) [2] (9, 2)
1 2 [1] (16, 4) [2] (9, 2)
2 6 [1] (16, 4) [2] (15, 3)
2 3 [1] (16, 4) [2] (18, 4)
-- Scanning the hash table and returning the aggregated values
-- 1 4
-- 2 4.5
通常情况下,如果已经订购结果,结果就会更快(例如,这些数值源自指数或由前一次作业分类的结果)。
较快的是结果没有分类(希望比分类更快)。
。
不幸的是,与大多数其他系统不同的是,<代码>SQL 服务器代码>无法有效地利用这一系统,因为它在制作<代码>时并不好。 INDEX SKIP SCAN (jumping over separate index keys).
简单的<条码><<>/条码>和<条码>/条码>(无<条码>按条码>条款排列的> 合计一栏的索引编制方法,MIN
和
,GROUP BY
,使用与其他合计功能相同的方法。