You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新手求助:编写KQL脚本按销售代表及区域取销售额前三账户

KQL实现按销售代表+区域分组取销售额前3账户

首先需要先处理sales_amount字段——原数据里是带$的字符串,必须先转换为数值类型才能正确排序。接下来用Kusto的窗口函数实现分组内的排名筛选,具体脚本如下:

// 模拟你的示例数据,实际使用时替换为你的表名
datatable(Sales_rep:string, account_id:string, sales_amount:string, region:string)
[
    "John Smith", "1234", "$100", "North",
    "John Smith", "9876", "$400", "East",
    "John Smith", "1729", "$1000", "North",
    "John Smith", "9387", "$250", "South",
    "Maria Klaus", "4567", "$300", "West",
    "Maria Klaus", "7890", "$325", "South"
]
| // 处理销售额:去掉$符号并转为数值类型
extend sales_amount_num = toreal(replace_string(sales_amount, "$", ""))
| // 按销售代表和区域分区,每个分区内按销售额降序排名
partition by Sales_rep, region
    order by sales_amount_num desc
    serialize rank = row_number()
| // 筛选每个分组的前3名
where rank <= 3
| // 保留原字段和排名(可选,可根据需要调整输出列)
project Sales_rep, account_id, sales_amount, region, rank

关键步骤说明

  • 数据类型转换:replace_string(sales_amount, "$", "")去掉金额里的$,再用toreal()转为数值,确保排序逻辑正确。
  • 分区排名:partition by Sales_rep, region指定分组维度,order by sales_amount_num desc按销售额降序,row_number()生成每个分组内的排名序号。
  • 筛选结果:where rank <=3只保留每个分组的前3条记录。

如果你的实际表中sales_amount已经是数值类型,可以跳过数据转换的extend步骤,直接使用原字段排序即可。

内容的提问来源于stack exchange,提问作者SusanD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 23:18:17