QuickSight按月统计新增开票用户数的实现方案咨询
QuickSight按月统计首次开票新用户数量实现方案
核心逻辑是先标记每个用户的首次开票记录,过滤掉非首次记录后再按月聚合统计,具体操作步骤如下:
步骤1:计算每个用户的首次开票日期
新增计算字段,命名为user_first_invoice_date,公式为:
minOver({date}, [{user_id}], PRE_AGG)
该字段会对同一user_id的所有记录,统一赋值为该用户所有开票记录中最小的日期,也就是首次开票日期。
步骤2:标记首次开票记录
新增计算字段,命名为is_first_invoice,公式为:
ifelse({date} = {user_first_invoice_date}, 1, 0)
该字段值为1时代表当前记录是对应用户的首次开票记录,值为0时为非首次的冗余记录,统计时可以直接过滤。
步骤3:统计每月新增用户
有两种实现方式可选:
- 方式一:先给数据集添加筛选条件,设置
is_first_invoice = 1,之后以**月份(从date字段提取即可)**为维度,对user_id做去重计数/直接计数即可得到每月新增用户数。 - 方式二:无需提前过滤,直接新增统计用的度量字段
monthly_new_user_count,公式为:
之后以月份为维度,直接引用该度量字段即可得到统计结果。distinct_countIf({user_id}, {is_first_invoice} = 1)
注意事项
- 确保数据集中的
date字段为日期类型,如果是字符串格式的月份,需要先用parseDate()函数转换为日期格式再做计算,避免跨年度的同月数据统计错误。 - 如果需要按自然年月统计,维度可以使用
truncDate('MM', {date})提取年月,避免不同年份的相同月份合并统计。
内容的提问来源于stack exchange,提问作者D0m3
相关产品推荐
相关产品推荐

