Timescale Cloud:性能、规模、企业级

自托管产品

MST

介绍

从列中获取 N 个最小值。

min_n() 函数与常规 SQL 查询 SELECT ... ORDER BY ... LIMIT n 的结果相同。但与 SQL 查询不同,它们可以像其他聚合超函数一样进行组合和叠加。

要获取 N 个最大值,请使用max_n()。要获取 N 个伴随数据的最小值,请使用min_n_by()

相关超函数组

聚合

min_n
查找一组数据中的最小值

访问器

into_array
返回 MinN 聚合中最低值的数组
into_values
返回 MinN 聚合中最低值

汇总

rollup
组合多个 MinN 聚合
min_n(
value BIGINT | DOUBLE PRECISION | TIMESTAMPTZ,
capacity BIGINT
) MinN

构建一个聚合,跟踪通过它的最小值。

所需参数
名称类型描述
valueBIGINT, DOUBLE PRECISION, TIMESTAMPTZ传入聚合的值
capacityBIGINT要保留的值的数量。
返回
类型描述
min_nMinN编译后的聚合。请注意,确切的类型是 MinIntsMinFloatsMinTimes,具体取决于输入类型
into_array (
agg MinN
) BIGINT[] | DOUBLE PRECISION[] | TIMESTAMPTZ[]

返回聚合看到的 N 个最低值。这些值以递增顺序格式化为数组。

所需参数
名称类型描述
aggMinN要返回结果的聚合。请注意,此处的确切类型因存储的数据类型而异。
返回
类型描述
into_arrayBIGINT[], DOUBLE PRECISION[], TIMESTAMPTZ[]创建此聚合时看到的最低值。
示例

对于 i = 1 到 10000,从 i * 13 % 10007 中查找底部的 5 个值

SELECT into_array(
min_n(sub.val, 5))
FROM (
SELECT (i * 13) % 10007 AS val
FROM generate_series(1,10000) as i
) sub;
into_array
---------------------------------
{1,2,3,4,5}
into_values (
agg MinN
) SETOF BIGINT | SETOF DOUBLE PRECISION | SETOF TIMESTAMPTZ

返回聚合看到的 N 个最低值。

所需参数
名称类型描述
aggMinN要返回结果的聚合。请注意,此处的确切类型因存储的数据类型而异。
返回
类型描述
into_valuesSETOF BIGINT, SETOF DOUBLE PRECISION, SETOF TIMESTAMPTZ创建此聚合时看到的最低值。
示例

对于 i = 1 到 10000,从 i * 13 % 10007 中查找底部的 5 个值

SELECT toolkit_experimental.into_array(
toolkit_experimental.min_n(sub.val, 5))
FROM (
SELECT (i * 13) % 10007 AS val
FROM generate_series(1,10000) as i
) sub;
into_values
---------------------------------
1
2
3
4
5
rollup(
agg MinN
) MinN

此聚合组合了其他 min_n 聚合生成的聚合,并返回所有聚合数据中找到的最小值。

所需参数
名称类型描述
aggMinN正在组合的聚合
返回
类型描述
rollupMinN对所有贡献值进行的聚合。

此示例假设您有一个以下格式的股票交易表

CREATE TABLE stock_sales(
ts TIMESTAMPTZ,
symbol TEXT,
price FLOAT,
volume INT
);

您可以查询每天最小的 10 笔交易

WITH t as (
SELECT
time_bucket('1 day'::interval, ts) as day,
min_n(price * volume, 10) AS daily_min
FROM stock_sales
GROUP BY time_bucket('1 day'::interval, ts)
)
SELECT
day, as_array(daily_max)
FROM t;

关键词

在此页面上发现问题?报告问题 或 编辑此页面 在 GitHub 上。