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

如何用KQL查询近3天用户每日事件数并补全无数据日期的0值

解决KQL无数据日期填充0的问题

要实现近3天内每个用户每日事件计数(无数据日期显示0),可以通过生成日期序列、构造用户-日期全量组合、左连接统计结果三步完成,完整KQL语句如下:

// 1. 生成近3天的日期序列(按天对齐)
let date_range = range created from floor(ago(3d), 1d) to floor(now(), 1d) step 1d
                | project created = format_datetime(created, 'dd/MM/yyyy');
// 2. 获取这段时间内的所有唯一用户
let all_users = events
                | where created >= ago(3d)
                | distinct user;
// 3. 构造用户-日期的全量组合,左连接原统计结果并填充0
date_range
| crossjoin all_users
| left join (
    events
    | where created >= ago(3d)  
    | summarize Count = count() by created_day = format_datetime(bin(created, 1d), 'dd/MM/yyyy'), user
) on $left.created == $right.created_day and $left.user == $right.user
| project created, user, Count = coalesce(Count, 0)
| order by created desc, user

关键逻辑说明:

  • 生成日期序列:用range函数生成近3天的完整日期列表,确保无数据的日期也被纳入统计范围。
  • 提取唯一用户:从事件表中筛选出这段时间内的所有用户,保证每个用户都能匹配到所有日期。
  • 笛卡尔积关联:通过crossjoin将日期序列和用户列表交叉组合,得到每个用户对应所有日期的完整映射。
  • 填充空值为0:左连接原始统计结果后,用coalesce函数将未匹配到数据的Count字段替换为0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 00:04:54