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

Azure ADX物化视图使用argmax后如何移除参数独立时间戳

问题:Azure ADX物化视图中移除argmax生成的多余时间戳列

在Azure ADX中创建物化视图时,要求summarize必须是查询的最后语句。我用argmax函数对多个参数取最近的非空值,写法如下:

table_name 
| summarize   
arg_max( parametername1 = iif(isnotempty(parametername1), ts, unixtime_nanoseconds_todatetime(0)), parametername1 = parametername1 ), 
arg_max( parametername2 = iif(isnotempty(parametername2 ), ts, unixtime_nanoseconds_todatetime(0)), parametername2 =parametername2 ),
 ... 
by origin, bin(ts,1m)

问题在于argmax会返回每个参数对应的时间戳和参数值,生成两个独立列,但我已有bin处理后的ts,无需每个参数的独立时间戳。由于不能将project或project-away作为最后语句,尝试过的方法均无效,请问是否有可行方案?


解决方案

直接通过访问argmax返回记录的参数值字段,就能在summarize内部完成只保留参数值的操作,无需额外的project步骤。

修改后的查询如下:

table_name 
| summarize   
    parametername1 = arg_max(iif(isnotempty(parametername1), ts, unixtime_nanoseconds_todatetime(0)), parametername1).parametername1,
    parametername2 = arg_max(iif(isnotempty(parametername2), ts, unixtime_nanoseconds_todatetime(0)), parametername2).parametername2,
    // 其他参数依此类推
by origin, bin(ts, 1m)

原理说明

arg_max函数返回的是一个包含两个元素的记录:第一个是用于排序比较的时间戳,第二个是对应的参数值。通过.参数名的方式直接提取记录中的参数值部分,就能让summarize只生成你需要的参数列,不会附带每个参数的独立时间戳,完全符合物化视图对summarize作为最后语句的限制。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 18:07:22