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

无关联列时,如何用KQL对比上周最低TriggersStarted时段与今日近1小时数据?

解决KQL中无共同列的数据集对比问题:过去一周最低小时触发量vs今日1小时触发量

问题背景

需要对比过去一周内TriggersStarted触发量最低的小时数据,与今日过去1小时的TriggersStarted触发量,但两个数据集无共同列,无法使用join关联。

可行解决方案

不需要依赖join,可以通过以下两种方式实现结果对比:

方法1:用toscalar将单值结果转为标量引用

toscalar能把单个值的查询结果转换成标量,直接在另一个查询中调用:

// 计算过去一周的最低小时触发量,存储为标量
let last_week_lowest = toscalar(
    AzureMetrics
    | where TimeGenerated between (ago(7d) .. endofday(ago(1d)))
    | where MetricName == "TriggersStarted"
    | summarize hourly_count = count() by bin(TimeGenerated, 1h)
    | summarize min(hourly_count)
);
// 计算今日过去1小时触发量,并关联标量值
AzureMetrics
| where TimeGenerated > ago(1h)
| where MetricName == "TriggersStarted"
| summarize today_last_hour = count()
| extend last_week_min_hour = last_week_lowest
| project 今日过去1小时触发量=today_last_hour, 过去一周最低小时触发量=last_week_min_hour

方法2:用union合并两个带标识的结果表

分别生成带指标说明的结果表,再合并展示:

// 生成过去一周最低小时触发量的结果表
let last_week_data = 
    AzureMetrics
    | where TimeGenerated between (ago(7d) .. endofday(ago(1d)))
    | where MetricName == "TriggersStarted"
    | summarize hourly_count = count() by bin(TimeGenerated, 1h)
    | summarize min_count = min(hourly_count)
    | project 指标类型="过去一周最低小时触发量", 触发量=min_count;
// 生成今日过去1小时触发量的结果表
let today_data = 
    AzureMetrics
    | where TimeGenerated > ago(1h)
    | where MetricName == "TriggersStarted"
    | summarize total_count = count()
    | project 指标类型="今日过去1小时触发量", 触发量=total_count;
// 合并两个结果表
union last_week_data, today_data

原问题分析

你尝试的join无法生效,是因为两个子查询都只返回单个值的结果集,没有可用于匹配的共同列。上述两种方法绕过了join的限制,直接实现两个独立计算结果的对比展示。

内容的提问来源于stack exchange,提问作者Nikhil Babu Battula

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:50:41