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

如何在KQL中获取指定时间范围内每周起始日的销售数据?

解决方案

需求回顾

需要统计过去30天内每个每周起始日(周日)当天的销售数据:

  • 总销售计数(Sales)
  • 待处理销售计数(PendingSales)
    当前查询仅能返回30天前那周起始日的统计,需扩展到指定时间范围内的所有周日。

错误示例查询(供参考)

SalesData
| where DateStamp >= startofweek(ago(30d))
| project DateStamp, Sales
| summarize Sales=count(), PendingSales=countif(Sales == "Pending") by Week=startofweek(ago(30d))

正确KQL查询

// 生成过去30天内的所有周日列表
let target_weeks = range Week from startofweek(ago(30d)) to now() step 7d;
// 筛选并聚合目标周日当天的销售数据
SalesData
| where DateStamp between (startofweek(ago(30d)) .. now())
| extend Week = startofweek(DateStamp)
// 仅保留DateStamp为周日当天的数据(Week等于DateStamp则当天是周日)
| where Week == DateStamp
| summarize 
    Sales = count(),
    PendingSales = countif(Sales == "Pending")
by Week
// 右连接确保所有目标周日都出现在结果中,无数据时填充0
| join kind=rightouter target_weeks on Week
| project Week, Sales = coalesce(Sales, 0), PendingSales = coalesce(PendingSales, 0)
| sort by Week asc

关键说明

  1. 生成目标周日列表:用range函数生成过去30天内的所有周日,确保不遗漏任何需要统计的日期
  2. 筛选周日当天数据:通过Week == DateStamp判断数据是否属于周日当天,避免整周聚合
  3. 补全空数据:使用rightouter join配合coalesce,保证即使某个周日没有销售记录,也会显示对应的行并填充0值
  4. 排序输出:按日期升序排列,符合时间顺序

期望输出示例

WeekSalesPendingSales
2024-06-30 00:00:00.00000004523
2024-07-07 00:00:00.00000003215
2024-07-14 00:00:00.000000000
2024-07-21 00:00:00.00000005829
2024-07-28 00:00:00.00000004118
2024-08-04 00:00:00.00000002711

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 04:00:10