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

如何在Kusto中动态生成最近7天的每日统计列?

动态生成最近N天按钮点击统计的Kusto方案

核心思路

通过bin()按天分组统计,再用pivot()将日期维度转为横向列,彻底摆脱手动编写countif的繁琐,支持动态调整统计天数。

方案一:日期列名直观版

此版本自动生成日期格式的列名(如2024-05-20),清晰易懂,维护成本最低:

let usg_events = dynamic(["click_event"]);
let stats_days = 7; // 修改此处调整统计天数
customEvents
| where timestamp > ago(stats_days + 1d) and isempty(operation_SyntheticSource)
| extend name = replace("\n", "", name)
| where '*' in (usg_events) or name in (usg_events)
| extend dimension = tostring(customDimensions["click_event"])
| where dimension != ""
| extend date = bin(timestamp, 1d) // 按天对齐时间戳
| summarize daily_count = count() by dimension, date
| pivot(date, sum(daily_count)) // 将日期转为横向统计列
| order by dimension asc

方案二:兼容原列名版

如果需要和原查询的列名(count_24h、count_y、count_2等)保持一致,可通过计算天数偏移来生成对应列名:

let usg_events = dynamic(["click_event"]);
let stats_days = 7; // 修改此处调整统计天数
customEvents
| where timestamp > ago(stats_days + 1d) and isempty(operation_SyntheticSource)
| extend name = replace("\n", "", name)
| where '*' in (usg_events) or name in (usg_events)
| extend dimension = tostring(customDimensions["click_event"])
| where dimension != ""
| // 计算当前时间与事件时间的天数偏移,0=最近24h,1=昨天,以此类推
| extend day_offset = floor((now() - timestamp) / 1d)
| where day_offset < stats_days
| // 生成匹配原查询的列名
| extend col_name = case(
    day_offset == 0, "count_24h",
    day_offset == 1, "count_y",
    strcat("count_", tostring(day_offset))
)
| summarize daily_count = count() by dimension, col_name
| pivot(col_name, sum(daily_count))
| order by dimension asc

优势说明

  • 仅需修改stats_days变量即可扩展统计天数,无需手动添加任何countif条件
  • 逻辑简洁,避免重复代码,降低维护出错概率
  • 方案一的日期列名更直观,方案二兼容原有报表格式,可按需选择

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 11:30:37