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

如何在Azure Application Insights中实现去重并按月统计唯一活跃用户?

提取每月唯一活跃用户列表的解决方案

嘿,我来帮你搞定这个需求!根据你的描述,我们的目标是从用户互动数据里,提取出每个月至少有一次点击行为的唯一用户列表——不管用户当月参与了多少活动、有多少天的记录,只要当月出现过就算活跃用户,且每个用户每月只保留一条记录。

先看你提供的现有查询,它目前是按天、用户、活动ID统计点击数,没有实现按月度的用户去重。我来帮你调整成符合需求的版本,一步步解释:

优化后的KQL查询

customEvents
// 基础数据转换:统一时间格式、用户名大小写,提取必要字段
| extend rTimeStamp = todatetime(customDimensions.timeStamp)
| extend username = tolower(tostring(customDimensions.username))
| extend item_uid = tostring(customDimensions.itemId)
// 只保留点击事件
| where name == 'click'
// 将日期转换为「年-月」格式,用于按月分组统计
| extend month = format_datetime(rTimeStamp, "yyyy-MM")
// 按月份+用户名去重,得到每个月的唯一活跃用户
| summarize by month, username
// 可选:如果需要查看用户当月参与的不同活动数量,可替换上面的summarize为下面这行
// | summarize distinct_campaigns = dcount(item_uid) by month, username
// 按月份和用户名排序,方便查看
| order by month asc, username asc

关键逻辑说明

  • 数据标准化:先把时间戳转成datetime格式,用户名统一转小写,避免因为大小写差异导致的用户重复统计。
  • 月份维度聚合:用format_datetime把具体日期转成yyyy-MM的月份字符串,这样就能按自然月来分组。
  • 用户去重:summarize by month, username会自动对每个月的用户去重,确保同一用户在同一个月里只出现一次,完全符合你要的「每月唯一活跃用户」需求。
  • 可选扩展:如果还想知道每个用户当月参与了多少不同的活动,可以用dcount(item_uid)来统计该用户当月的唯一活动ID数量,注释里已经给出了扩展写法。

这个查询完美适配你提到的唯一性规则(同一用户单日同一campaign_id仅记录一次),因为我们只关心用户是否在当月有过互动,不管具体的活动和日期次数~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:00:18