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

如何访问Kusto多个let语句结果并合并查询以获取bin函数参数

ADX访问let查询结果&合并查询的方法

一、访问第一个let查询的内部结果

你的bin_size是用summarize生成的单行结果表,要在后续查询里直接调用其中的x_bin_size和y_bin_size,有两种实用方式:

  1. 直接引用表列名
    因为bin_size只有一行数据,ADX支持直接用bin_size.x_bin_size、bin_size.y_bin_size的格式引用列值,就像你示例里写的那样,悬停能看到结果也说明这种方式是有效的。

  2. 转成标量变量更清晰
    要是想避免表引用的歧义,也可以用toscalar()把每个统计值单独提取成标量变量,写法如下:

    let x_bin_size = toscalar(T | summarize (max(X) - min(X)) / ...);
    let y_bin_size = toscalar(T | summarize (max(Y) - min(Y)) / ...);
    let result = 
    T
    | project X, Y
    | summarize Count=count() by bin(X, x_bin_size), bin(Y, y_bin_size);
    result
    

二、合并为单个查询

可以用materialize()函数先一次性算出X、Y的极值,复用结果避免重复扫描表T,效率更高:

T
| materialize (
    let stats = materialize(T | summarize minX=min(X), maxX=max(X), minY=min(Y), maxY=max(Y));
    let x_bin_size = toscalar(stats | project (maxX - minX) / ...);
    let y_bin_size = toscalar(stats | project (maxY - minY) / ...);
    project X, Y
    | summarize Count=count() by bin(X, x_bin_size), bin(Y, y_bin_size)
)

或者用更紧凑的写法,全程在一个查询流里完成,只扫描一次表T:

T
| extend dummy=1
| summarize minX=min(X), maxX=max(X), minY=min(Y), maxY=max(Y), all_data=make_bag(pack("X",X,"Y",Y)) by dummy
| extend x_bin_size=(maxX - minX)/..., y_bin_size=(maxY - minY)/...
| mv-expand all_data
| evaluate bag_unpack(all_data)
| summarize Count=count() by bin(X, x_bin_size), bin(Y, y_bin_size)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 07:05:23