Solaris 动态跟踪指南

聚合函数

聚合函数具有以下属性:

f(f(x0) U f(x 1) U ... U f(xn)) = f(x 0 U x1  U ... U xn)

其中,xn 是一个包含任意数据的数据集。即,对整个数据集合的子集应用聚合函数,然后再次对结果应用该聚合函数,得出的结果与对整个数据集合本身应用该函数相同。例如,考虑生成给定数据集之和的 SUM 函数。如果原始数据由 {2, 1, 2, 5, 4, 3, 6, 4, 2} 组成,则对整个集合应用 SUM 的结果将是 {29}。同样,对由前三个元素组成的子集应用 SUM 的结果将是 {5},对由接下来的三个元素组成的子集应用 SUM 的结果将是 {12},而对余下三个元素应用 SUM 的结果也是 {12}。SUM 是一个聚合函数,因为将其应用于这些结果的集合 {5, 12, 12} 与将 SUM 应用于原始数据生成的结果相同,即 {29}。

并非所有函数都为聚合函数。用于确定集合的中间元素的 MEDIAN 函数就是一个非聚合函数。(中间元素的定义是:集合中大于它的元素数目与小于它的元素数目相同。)MEDIAN 是通过对集合进行排序,然后选择中间元素获取的。现在返回到最初的原始数据,如果对由前三个元素组成的集合应用 MEDIAN,则结果为 {2}。(经过排序的集合为 {1, 2, 2};{2} 是由中间元素组成的集合。)同样,对接下来的三个元素应用 MEDIAN 将生成 {4},而对最后三个元素应用 MEDIAN 将生成 {4}。因此,对每个子集应用 MEDIAN 将生成集合 {2, 4, 4}。对此集合应用 MEDIAN 将生成结果 {4}。但是,对原始集合进行排序将生成 {1, 2, 2, 2, 3, 4, 4, 5, 6}。对此集合应用 MEDIAN 将生成 {3}。因为这些结果不匹配,所以 MEDIAN 不是聚合函数。

许多用于了解数据集的常见函数都是聚合函数。这些函数包括:用于计算集合中元素数目的函数、用于计算集合的最小值和最大值的函数以及用于对集合中的所有元素求和的函数。可通过用于计算集合中元素数目的函数和用于对集中的元素进行求和的函数,来确定集合的运算方法。

但是,一些有用的函数并非聚合函数。这些函数包括:用于计算集合的模(最常见元素)的函数、用于计算集合的中间元素值的函数以及用于计算集合的标准差的函数。

在跟踪数据时对数据应用聚合函数有许多优点: