查找百分位数和分位数
使用 quantile()
函数 返回表示输入数据的 q
分位数或百分位数的值。
百分位数与分位数
百分位数和分位数非常相似,仅在用于计算返回值的数字上有所不同。百分位数使用 0
到 100
之间的数字计算。分位数使用 0.0
到 1.0
之间的数字计算。例如,0.5
分位数与第 50 百分位数相同。
选择计算分位数的方法
选择以下方法之一来计算分位数
estimate_tdigest
(默认) 一种聚合方法,它使用 t-digest 数据结构 来计算大型数据源的分位数估计值。输出表由包含计算出的分位数的单行组成。
如果计算 0.5
分位数或第 50 百分位数
给定以下输入表
_time | _value |
---|---|
2020-01-01T00:01:00Z | 1.0 |
2020-01-01T00:02:00Z | 1.0 |
2020-01-01T00:03:00Z | 2.0 |
2020-01-01T00:04:00Z | 3.0 |
estimate_tdigest
返回
_value |
---|
1.5 |
exact_mean
一种聚合方法,它取最接近分位数值的两个点的平均值。输出表由包含计算出的分位数的单行组成。
如果计算 0.5
分位数或第 50 百分位数
给定以下输入表
_time | _value |
---|---|
2020-01-01T00:01:00Z | 1.0 |
2020-01-01T00:02:00Z | 1.0 |
2020-01-01T00:03:00Z | 2.0 |
2020-01-01T00:04:00Z | 3.0 |
exact_mean
返回
_value |
---|
1.5 |
exact_selector
一种选择器方法,它返回至少有 q
个点小于的数据点。输出表由包含计算出的分位数的单行组成。
如果计算 0.5
分位数或第 50 百分位数
给定以下输入表
_time | _value |
---|---|
2020-01-01T00:01:00Z | 1.0 |
2020-01-01T00:02:00Z | 1.0 |
2020-01-01T00:03:00Z | 2.0 |
2020-01-01T00:04:00Z | 3.0 |
exact_selector
返回
_time | _value |
---|---|
2020-01-01T00:02:00Z | 1.0 |
以下示例使用示例数据变量。
查找表示第 99 百分位数的值
使用默认方法 "estimate_tdigest"
,返回表中包含表中数据第 99 百分位数的所有行。
data
|> quantile(q: 0.99)
查找最接近分位数的平均值
使用 exact_mean
方法返回每个输入表的单行,其中包含最接近表中数据数学分位数的两个值的平均值。例如,要计算 0.99
分位数
data
|> quantile(q: 0.99, method: "exact_mean")
查找具有分位数值的点
使用 exact_selector
方法返回每个输入表的单行,其中包含小于表中 q * 100
% 值的数值。例如,要计算 0.99
分位数
data
|> quantile(q: 0.99, method: "exact_selector")
将 quantile() 与 aggregateWindow() 一起使用
aggregateWindow()
将数据分段到时间窗口中,将每个窗口中的数据聚合为单个点,然后删除基于时间的分割。它主要用于数据降采样。
要在 aggregateWindow()
中指定分位数计算方法,请使用完整函数语法
data
|> aggregateWindow(
every: 5m,
fn: (tables=<-, column) => tables
|> quantile(q: 0.99, method: "exact_selector"),
)
此页面是否对您有帮助?
感谢您的反馈!