rank_tdigest()

适用于:✅Azure 数据资源管理器Azure MonitorMicrosoft Sentinel

计算数据集中值的近似排序。 数据集 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