文档文档

histogramQuantile() 函数

histogramQuantile() 函数逼近给定直方图的分位数,该直方图逼近数据集的累积分布。

每个输入表代表一个直方图。直方图表必须有两列——计数列和上限列。

计数是小于或等于上限值的数值的数量。表可以有任意数量的记录,每个记录代表直方图中的一个柱状条。当按上限排序时,计数必须单调递增。如果计数列或上限列中的任何值为 null,则会返回错误。计数列和上限列必须是组键的一部分。

分位数是使用两个最接近的边界之间的线性插值计算的。如果插值中使用的任何一个边界是无限的,则使用另一个有限边界,并且不执行插值。

输出表

输出表与相应的输入表具有相同的组键。不属于组键的列将被删除。添加一个 float 类型的单值列。值列表示直方图中所需分位数的值。

函数类型签名
(
    <-tables: stream[A],
    ?countColumn: string,
    ?minValue: float,
    ?onNonmonotonic: string,
    ?quantile: float,
    ?upperBoundColumn: string,
    ?valueColumn: string,
) => stream[B] where A: Record, B: Record

有关更多信息,请参阅 函数类型签名

参数

quantile

要计算的分位数。值必须介于 0 和 1 之间。

countColumn

包含直方图柱状条计数的列。默认为 _value

upperBoundColumn

包含直方图柱状条上限的列。默认为 le

valueColumn

用于存储计算出的分位数的列。默认为 `_value。

minValue

数据集的假定最小值。默认为 0.0

onNonmonotonic

描述当按上限排序时计数不是单调递增时的行为。默认为 error

支持的值:

  • error:产生错误。
  • force:强制柱状条计数为单调递增,方法是向每个柱状条添加值,使其等于下一个较小的柱状条。
  • drop:当遇到非单调表时,不产生输出。如果分位数低于最低上限,则在 minValue 和最低上限之间执行插值。当 minValue 等于负无穷大时,使用最低上限。

tables

输入数据。默认为管道转发数据 (<-)。

示例

计算直方图的第 90 个分位数

data
    |> histogramQuantile(quantile: 0.9)

查看示例输入和输出


此页是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

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

有关更多信息,请查看