计算数据集中值的近似排序。
数据集 S 中值 v 的排序定义为 S 中小于或等于 v 的成员的计数,S 使用其 tdigest 表示。
语法
rank_tdigest(digest, value)
详细了解语法约定。
参数
| 客户 | 类型 | 必需 | 说明 |
|---|---|---|---|
| digest | string |
由 tdigest() 或 tdigest_merge() 生成的一个表达式。 | |
| value | 标量 (scalar) | 一个表达式,表示要用于排名计算的值。 |
返回
数据集中每个值的排名。
提示
要获取其排名的值必须与 tdigest 为同一类型。
示例
在排序列表 (1-1000) 中,排名 685 是其索引:
range x from 1 to 1000 step 1
| summarize t_x=tdigest(x)
| project rank_of_685=rank_tdigest(t_x, 685)
输出
rank_of_685 |
|---|
685 |
此查询计算所有损坏财产成本的值 4490$ 的排名:
StormEvents
| summarize tdigestRes = tdigest(DamageProperty)
| project rank_of_4490=rank_tdigest(tdigestRes, 4490)
输出
rank_of_4490 |
|---|
50207 |
获取排名的估计百分比(通过除以数据集大小):
StormEvents
| summarize tdigestRes = tdigest(DamageProperty), count()
| project rank_tdigest(tdigestRes, 4490) * 100.0 / count_
输出
Column1 |
|---|
85.0015237192293 |
损坏财产成本的第 85 个百分位数为 4490$:
StormEvents
| summarize tdigestRes = tdigest(DamageProperty)
| project percentile_tdigest(tdigestRes, 85, typeof(long))
输出
percentile_tdigest_tdigestRes |
|---|
4490 |