TimescaleDB API 参考超函数统计和回归分析

简介

使用这组函数执行常见的统计分析,例如计算平均值和标准差。这些函数类似于PostgreSQL 统计聚合,但它们包含更多功能,并且在连续聚合和窗口函数中更容易使用。

这些函数作用于一维数据。要处理二维数据,例如执行线性回归,请参阅二维 stats_agg 函数

相关的超函数组

聚合

stats_agg(一个变量)
将数据聚合到中间统计聚合形式以供进一步计算

访问器

average
从一维统计聚合中计算平均值
kurtosis
从一维统计聚合中计算峰度
num_vals
计算一维统计聚合中的值数量
skewness
从一维统计聚合中计算偏度
stddev
从一维统计聚合中计算标准差
sum
从一维统计聚合中计算总和
variance
从一维统计聚合中计算方差

汇总

rolling
将多个一维统计聚合组合在一起以计算滚动窗口聚合
rollup
将多个一维统计聚合组合在一起
stats_agg(
value DOUBLE PRECISION
) RETURNS StatsSummary1D

这是对一维数据执行任何统计聚合计算的第一步。使用 stats_agg 从您的数据中创建中间聚合(StatsSummary1D)。然后可以使用此组中的一个或多个访问器从该中间形式计算最终结果。或者,可以使用rollup()rolling()将多个这样的中间聚合对象组合在一起,然后再应用访问器。

stats_agg 非常适合创建可以稍后用于多种目的的连续聚合。例如,您可以使用 stats_agg 创建一个连续聚合来计算平均值和总和。稍后,您可以使用相同的 StatsSummary1D 对象从同一个连续聚合中计算标准差。

必需参数
名称类型描述
valueDOUBLE PRECISION用于统计聚合的变量。
返回值
类型描述
stats_aggStatsSummary1D统计聚合,包含有关变量的中间形式数据。将聚合传递给统计聚合 API 中的访问器函数以执行最终计算。或者,将聚合传递给汇总函数以将多个统计聚合组合成更大的聚合。
average(
summary StatsSummary1D
) RETURNS DOUBLE PRECISION

从统计聚合中的值计算简单平均值(或均值)。

必需参数
名称类型描述
summaryStatsSummary1Dstats_agg 调用产生的统计聚合
返回值
类型描述
averageDOUBLE PRECISION统计聚合中值的平均值
示例

计算从 0 到 100 的整数的平均值

SELECT average(stats_agg(data))
FROM generate_series(0, 100) data;
average
-----------
50
kurtosis(
summary StatsSummary1D,
[ method TEXT ]
) DOUBLE PRECISION

从统计聚合中的值计算峰度。峰度是第四个统计矩。它是一种衡量数据分布与正态分布相比的“尾部”程度的指标。

必需参数
名称类型描述
summaryStatsSummary1Dstats_agg 调用产生的统计聚合
可选参数
名称类型描述
methodTEXT用于计算峰度的方法。两个选项是 populationsample,可以缩写为 popsamp。默认值为 sample
返回值
类型描述
kurtosisDOUBLE PRECISION统计聚合中值的峰度
示例

计算包含从 0 到 100 的整数的样本的峰度

SELECT kurtosis(stats_agg(data))
FROM generate_series(0, 100) data;
kurtosis
----------
1.78195
num_vals(
summary StatsSummary1D
) RETURNS BIGINT

计算统计聚合中包含的值数量。

必需参数
名称类型描述
summaryStatsSummary1Dstats_agg 调用产生的统计聚合
返回值
类型描述
num_valsDOUBLE PRECISION统计聚合中的值数量
示例

计算从 0 到 100(包含)的值的数量

SELECT num_vals(stats_agg(data))
FROM generate_series(0, 100) data;
num_vals
--------
101
skewness(
summary StatsSummary1D,
[ method TEXT ]
) RETURNS DOUBLE PRECISION

从统计聚合中的值计算偏度。偏度是第三个统计矩。它是一种衡量数据分布不对称程度的指标。

必需参数
名称类型描述
summaryStatsSummary1Dstats_agg 调用产生的统计聚合
可选参数
名称类型描述
methodTEXT用于计算偏度的方法。两个选项是 populationsample,可以缩写为 popsamp。默认值为 sample
返回值
类型描述
skewnessDOUBLE PRECISION统计聚合中值的偏度
示例

计算包含从 0 到 100 的整数的样本的偏度

SELECT skewness(stats_agg(data))
FROM generate_series(0, 100) data;
skewness_x
----------
0
stddev(
summary StatsSummary1D,
[ method TEXT ]
) RETURNS DOUBLE PRECISION

从统计聚合中的值计算标准差。

必需参数
名称类型描述
summaryStatsSummary1Dstats_agg 调用产生的统计聚合
可选参数
名称类型描述
methodTEXT用于计算标准差的方法。两个选项是 populationsample,可以缩写为 popsamp。默认值为 sample
返回值
类型描述
stddevDOUBLE PRECISION统计聚合中值的标准差
示例

计算包含从 0 到 100 的整数的样本的标准差

SELECT stddev(stats_agg(data))
FROM generate_series(0, 100) data;
stddev_y
--------
29.3002
sum(
summary StatsSummary1D
) RETURNS DOUBLE PRECISION

计算统计聚合中包含的值的总和。

必需参数
名称类型描述
summaryStatsSummary1Dstats_agg 调用产生的统计聚合
返回值
类型描述
sumDOUBLE PRECISION统计聚合中值的总和
示例

计算从 0 到 100 的整数的总和

SELECT sum(stats_agg(data))
FROM generate_series(0, 100) data;
sum
-----
5050
variance(
summary StatsSummary1D,
[ method TEXT ]
) RETURNS DOUBLE PRECISION

从统计聚合中的值计算方差。

必需参数
名称类型描述
summaryStatsSummary1Dstats_agg 调用产生的统计聚合
可选参数
名称类型描述
methodTEXT用于计算标准差的方法。两个选项是 populationsample,可以缩写为 popsamp。默认值为 sample
返回值
类型描述
varianceDOUBLE PRECISION统计聚合中值的方差
示例

计算包含从 0 到 100 的整数的样本的方差

SELECT variance(stats_agg(data))
FROM generate_series(0, 100) data;
variance
----------
858.5
rolling(
ss StatsSummary1D
) RETURNS StatsSummary1D

将多个中间统计聚合(StatsSummary1D)对象组合成一个 StatsSummary1D 对象。它针对在窗口函数上下文中使用进行优化,以计算滚动窗口统计聚合。

注意

这对于从连续聚合中计算滚动窗口聚合特别有用。它可以快得多,因为它使用逆转换和组合函数,在非窗口函数上下文中重新聚合(例如,将每小时的桶组合成每天的桶),请参阅rollup()

必需参数
名称类型描述
summaryStatsSummary1Dstats_agg 调用产生的统计聚合
返回值
类型描述
rollingStatsSummary1D通过组合输入统计聚合生成的新统计聚合
示例

组合每小时的连续聚合以创建滚动窗口每日聚合。使用相应的访问器计算平均值标准差

CREATE MATERIALIZED VIEW foo_hourly
WITH (timescaledb.continuous)
AS SELECT
time_bucket('1h'::interval, ts) AS bucket,
stats_agg(value) as stats
FROM foo
GROUP BY 1;
SELECT
bucket,
average(rolling(stats) OVER (ORDER BY bucket RANGE '1 day' PRECEDING)),
stddev(rolling(stats) OVER (ORDER BY bucket RANGE '1 day' PRECEDING)),
FROM foo_hourly;
rollup(
ss StatsSummary1D
) RETURNS StatsSummary1D

stats_agg(一个变量)生成的多个中间统计聚合(StatsSummary1D)对象组合成一个中间 StatsSummary1D 对象。例如,您可以使用 rollup 将 15 分钟桶的统计聚合组合成每天的桶。要在窗口函数中使用,请参阅rolling()

必需参数
名称类型描述
summaryStatsSummary1Dstats_agg 调用产生的统计聚合
返回值
类型描述
rollupStatsSummary1D通过组合输入统计聚合生成的新统计聚合

创建统计聚合以汇总有关变量 val1 的每日统计数据的统计信息。使用统计聚合来计算变量的平均值、标准差和偏度

WITH t as (
SELECT
time_bucket('1 day'::interval, ts) as dt,
stats_agg(val1) AS stats1D
FROM foo
WHERE id = 'bar'
GROUP BY time_bucket('1 day'::interval, ts)
)
SELECT
average(stats1D),
stddev(stats1D),
skewness(stats1D)
FROM t;

关键字

在这个页面上发现问题了吗?报告问题 或 在 GitHub 上编辑此页面