文档文档

查找中位数

使用 median() 函数 返回表示输入数据的 0.5 分位数(第 50 百分位数)或中位数的值。

选择计算中位数的方法

选择以下方法之一来计算中位数

estimate_tdigest

(默认) 一种聚合方法,它使用 t-digest 数据结构 来计算大型数据源上准确的 0.5 分位数估计值。输出表由包含计算出的中位数的单行组成。

给定以下输入表

_time_value
2020-01-01T00:01:00Z1.0
2020-01-01T00:02:00Z1.0
2020-01-01T00:03:00Z2.0
2020-01-01T00:04:00Z3.0

estimate_tdigest 返回

_value
1.5

exact_mean

一种聚合方法,它取最接近 0.5 分位数的两个点的平均值。输出表由包含计算出的中位数的单行组成。

给定以下输入表

_time_value
2020-01-01T00:01:00Z1.0
2020-01-01T00:02:00Z1.0
2020-01-01T00:03:00Z2.0
2020-01-01T00:04:00Z3.0

exact_mean 返回

_value
1.5

exact_selector

一种选择器方法,它返回至少 50% 的点小于的数据点。输出表由包含计算出的中位数的单行组成。

给定以下输入表

_time_value
2020-01-01T00:01:00Z1.0
2020-01-01T00:02:00Z1.0
2020-01-01T00:03:00Z2.0
2020-01-01T00:04:00Z3.0

exact_selector 返回

_time_value
2020-01-01T00:02:00Z1.0

以下示例使用示例数据变量

查找表示中位数的值

使用默认方法 "estimate_tdigest",返回表中包含表中数据第 50 百分位数的所有行。

data
    |> median()

查找最接近中位数值的值的平均值

使用 exact_mean 方法,为每个输入表返回单行,其中包含最接近表中数据数学中位数的两个值的平均值。

data
    |> median(method: "exact_mean")

查找具有中位数值的点

使用 exact_selector 方法,为每个输入表返回单行,其中包含小于表中 50% 值的值。

data
    |> median(method: "exact_selector")

将 median() 与 aggregateWindow() 结合使用

aggregateWindow() 将数据分段到时间窗口中,将每个窗口中的数据聚合为单个点,然后删除基于时间的分割。它主要用于数据降采样

要在 aggregateWindow() 中指定中位数计算方法,请使用完整函数语法

data
  |> aggregateWindow(
    every: 5m,
    fn: (tables=<-, column) => tables |> median(method: "exact_selector"),
  )

此页是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像现在这样使用它,而无需对您的代码进行任何更改。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、近实时的数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩功能,以实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看