产品分析

产品分析

在产品分析模块,你可根据埋点上报的用户行为事件、属性等数据分析用户在应用内的行为,了解应用的运营现状。如分析发布了VIP限时折扣活动后VIP购买人数变化,分析浏览、加购、购买的转化漏斗,分析用户打开app后的行为路径等。

image2023-5-12_17-30-17 (1)

事件分析

用户在产品上的行为我们定义为事件,它是用户行为的一个专业描述,用户在产品上的所有获得的程序反馈都可以抽象为事件进行采集,用于追踪或记录的用户行为或业务过程。

事件分析是指通过事件的属性、维度对各个事件进行统计分析,展示对应指标的变化趋势。支持灵活自定义分析指标,并将分析结果进行可视化展示,对分析后的用户结果可不断下钻查看用户详情或保存至用户群。

image2023-5-12_17-15-58

【新建事件分析】

在事件分析中,可以对一个指标进行分析,也可以再添加一个指标,同时对多个指标进行分析,最多可以同时添加六组指标。

1)选择要分析的指标

指标由事件、事件属性和计算汇总维度组成。在一般指标的设置中,可以选择事件类型、事件类型的筛选维度、事件属性、事件属性的汇总维度。

image2023-5-12_17-23-5

点击指标(1)选择指定事件,再次点击指标(1)可增加事件个数。点击编辑名称(2)可以修改指标名称,点击筛选(3)可以选择对该事件的属性进行进一步筛选,点击删除(4)将删除该指标,点击日期(5)可以选定事件分析的时间窗口,点击筛选用户群(6)可以选择计算成功的人群。

a、指标计算维度相关逻辑:

单天:

对于所有事件,都可以选择以下计算逻辑:

  • 总次数:单天,该事件的触发次数之和。

  • 总人数:单天,触发该事件的独立用户(用户去重)数之和。

  • 人均次数:单天,独立用户触发该事件的平均次数。

对于所有类型的属性,都可以选择以下值作为分析指标:

  • 去重数:单天,该属性出现的独立去重个数。

对于包含数值型属性的事件,可以选择以下值作为分析指标:

  • 总和:单天,该属性的取值总和。

  • 平均值:单天,该属性取值的平均值,即总和除以该属性值的个数总和。

  • 人均值:单天,平均每个该属性取值对应的用户平均值,即该属性取值总和除以该属性对应的用户人数去重值之和。

  • 最大值:单天,该属性取值中最大的值。

  • 最小值:单天,该属性取值中最小的值。

  • 中位数:单天,该属性所有取值中按从小到大排序中居于中间位置的数。

  • 去重数:单天,该属性出现的独立去重个数。

在计算结果表的总和:

所有事件:

  • 总次数:在选定时间范围内,次数总和,不去重。

  • 总人数:在选定时间范围内,所有用户(用户去重)数之和。

  • 人均次数:在选定时间范围内,次数总和/人数(去重)。

所有类型的属性

  • 去重数:在选定时间范围内,该属性出现的独立去重个数。

数值型属性:

  • 总和:在选定时间范围内,该属性的取值总和。

  • 平均值:在选定时间范围内,该属性取值的平均值,即总和除以该属性值的个数总和。

  • 人均值:在选定时间范围内,平均每个该属性取值对应的用户平均值,该属性取值总和除以该属性对应的用户人数去重值之和。

  • 最大值:在选定时间范围内,该属性取值中最大的值。

  • 最小值:在选定时间范围内,该属性取值中最小的值。

  • 中位数:在选定时间范围内,该属性所有取值中按从小到大排序中居于中间位置的数。

  • 去重数:在选定时间范围内,该属性出现的独立去重个数。

【特别说明】

  1. 若统计指标为数值型属性,不按人去重,则计算结果为该属性的取值总和。

举个例子(如图所示):假如11.01事实数据涉及4个人,5条事件,即每个事件对应人年龄(不按人去重)分别5、5、5、1、1;其中一个人触发两条事件,如果按每个事件对应按人去重计算总年龄,则总共4个人,每个人年龄是5、5、1、1;则登陆的年龄总和为12;

查询数据,当筛选条件为登陆事件,涉及4个人,5条事件信息;选择了用户属性年龄的总和这个指标,最终11.1年龄的总和指标数据没有先进行gtcid维度的去重加和,而是直接按照事件对应的人(不做按人去重)进行年龄加和,即11.01登陆的年龄的总和为17(5+5+5+1+1)。

image2023-5-12_17-23-5

b、自定义指标设置:

特定分析场景,需要自定义指标公式时,可以使用自定义指标分析,点击自定义指标(1)进行自定义指标的添加。

  • 自定义指标可以选择事件类型、事件属性、事件属性汇总维度;
  • 可以选择运算类型,支持的运算类型包含加、减、乘、除、常数、括号;
  • 最多可以输入四组指标

点击保存(2)进行自定义指标的保存,保存后该操作框呈置灰状态,点击删除(3)即可删除。

image2023-5-12_17-23-5

在自定义指标中,可以自定义指标名称。

点击自定义指标后的保存按钮,可以保存自定义指标公式并自动开始计算。保存后,自定义指标为不可插入光标编辑状态,如需重新编辑,需要点击编辑按钮进入编辑状态。

自定义指标中最多可支持输入四组指标参与计算,保存计算公式前,需要确认公式合法性,否则将不能保存指标。

2)展示维度设置

展示维度指事件分析的数据图表以什么维度进行数据展示,如指标选择启动APP的人数,选择按用户属性(手机品牌)展示,则图表会拆分每个手机品牌展示启动APP的人数趋势图。

可以选择总体、用户属性、事件属性三种类型,可同时添加五组展示维度。

3)筛选用户群

指定用户群进行事件分析,此处为全局过滤条件,用户群单选,如指标选择启动APP的人数,用户群选中“北京地区用户”,则分析图表中仅展示北京地区用户启动APP的人数趋势图。

4)查看分析结果

分析结果包含趋势图和详细数据。

图表中可以同时展示多组指标,图下方会标示指标编号和指标名称,可以选择当前展示的图类型,图表类型包含折线图、柱状图

img

可查看详细数据中某个群体的用户列表,或直接将其另存为用户群,供后期使用(漏斗分析、路径分析同理)。

image2023-5-12_17-24-27

【将事件分析图表添加至看板中】

image2023-5-12_17-25-51

对于列表中保存的分析图表,可根据使用场景,将其添加至看板中统一管理,数据每日会自动更新。如认为首页相关的数据比较重要,创建一个首页分析看板,将首页相关的分析图表数据添加至看板中(漏斗分析同理)。

漏斗分析

漏斗分析是一套流程式的数据分析模型,通过将用户行为起始的各个行为节点作为分析模型节点,来衡量每个节点的转化效果,是转化分析的重要工具。漏斗模型主要用于分析一个多步骤过程中每一步的转化与流失情况。

image2023-5-12_17-31-9

【新建漏斗分析】

支持自定义设置转化事件和筛选条件,并对分析结果进行可视化展示;支持查看每个步骤的流失、转化人数,并可对人群进行明细查看或保存为用户群。

image2023-5-12_17-34-40

1)选择漏斗步骤

  • 点击“新建漏斗”进入漏斗创建界面。
  • 左边是漏斗步骤选择区域,可以选用埋点上报的事件,一个漏斗中至少包含 2 个步骤,最多包含10个步骤,每个步骤对应一个事件(可附带一个或多个筛选条件),并可以进行指定过滤条件。
  • 在筛选(2)中可以加一个或者多个筛选条件,每个筛选条件表示一个转化流程中的一个关键性的步骤,最多可添加10个。
  • 点击(3)可以删除已选用事件。在“全局过滤条件”中点4可以选择需要过滤掉的具体条件。

2)查看漏斗分析结果

  • 日期(6):用户完成漏斗的时间限制,即只有在这个时间范围内,用户从第一个步骤,行进到最后一个步骤,才能被视为一次成功的转化。
  • 转化周期(7):用户完成漏斗第一步之后子啊后续N天之内完成漏斗的最后一步则判定该用户完成了转化,最长可选择30天。

对于所有事件,都可以选择以下计算维度:

  • 用户数:在选定时间范围内,触发该事件的独立用户数;
  • 流失用户数:在选定时间范围内,本次事件用户数-上一步骤事件用户数;
  • 上一步转化率:在选定时间范围内,本次事件用户数/上一步骤事件用户数(第一步事件的转化率为100%)
  • 总体转化率:在选定时间范围内,本次事件用户数/第一步骤事件用户数

img

【将漏斗分析结果添加至看板中】

逻辑同事件分析该功能,此处不再赘述。

img

LTV 分析

功能介绍

LTV(全称为Life Time Value)即用户生命周期总价值,用于衡量用户在指定时间段内贡献的价值。

使用场景:

  • 评估运营活动效果好坏:运营活动是否带来收益?用户人均价值是否提升?
  • 辅助评估用户贡献是否覆盖获客成本?
  • 查看用户价值在多久之后会趋于稳定?

概念

1、初始时间
即用户生命周期的起点,也是进行LTV计算的起点时间。可以选择指定某一事件,比如“注册”、“首购”,将事件的触发时间作为初始时间,也可以指定某一个日期(通过用户属性上报的时间型字段)作为初始时间
2、营收事件
应用在与用户的互动过程中所获取的经济收益(收入或利润),通常会选择以 充值金额、购买付费金额 等营收性指标来度量用户的Value,可以选择以毛收入来计算,也可以选择统计净利润。
也就是可以选择某个或者某几个事件作为营收事件,并指定有多大的比例可被计为营收,比如可以定义将充值金额 的 70% 计为营收
3、LT

生命周期时长,可以选择LTV 1-7、LTV 15、LTV 30、LTV 60、LTV 90几个时间节点,计算起始时间点当天以及之后的第1-7天、15天、30天、60天、90天的LTV

操作说明

1、开通个推用户运营,使用LTV分析功能

登录个推开发者中心,进入用户运营-产品分析-LTV分析页面,新建LTV分析

2、新建LTV分析,配置LTV分析的内容

1)选择LTV的初试时间

  • 指定某事件,将事件的触发时间作为初始时间(如果在查询时间范围内用户多次触发该事件,则以第一次事件的触发时间作为初始时间),或者指定某个日期型用户属性作为初始时间。

  • 点击“切换”按钮,可以在事件和用户属性之间切换,选择事件锚定初始用户群体时,可以添加筛选事件属性,以查看更细分的维度

  • 当初始时间在查询时间范围内时,即可以将相应的用户记为初始用户

img

2)营收事件

  • 指定事件+事件属性(数值型属性)+营收占比(可选) ,共同构成营收指标
  • 可以添加筛选事件属性,以查看更细分的维度

img

3)展示维度设置

  • 展示维度指事件分析的数据图表以什么维度进行数据展示,如指标选择启动APP的人数,选择按用户属性(手机品牌)展示,则图表会拆分每个手机品牌展示启动APP的人数趋势图。

    可以选择总体、用户属性、事件属性三种类型,可同时添加五组展示维度。

4)筛选时间

  • 如分析近一周的行为路径,时间可选近一周

img

4)全局筛选用户:设置中的内容为非必填项

  • 可以选择已有用户群或指定带有某些用户属性的用户进行分析,如仅分析VIP等级为黄金会员的LTV

img

3、点击开始分析查看分析结果

LTV 分析中,支持以两种视图来查看 LTV 分析的结果,趋势视图和对比视图。趋势视图中,可以查看 LTV 随留存时长的增长趋势;对比视图中,可以对比 LTV 随初始日期的变化情况。

选择“初始时间”为“领取优惠券”、“营收事件”为“支付订单”时的分析结果:

  • 趋势视图

img

  • 对比视图

img

4、可将LTV分析结果中的指定用户保存为用户群进行后续运营

  • 比如对领取优惠券并支付的用户保存为用户群,进行用户洞察分析然后根据洞察分析的结果进行策略制定以及用户触达。

img

5、计算逻辑

  • LTV当天、等第N天列:时间段内产生的总营收/时间段内产生营收的人数,举例:10月23日的初始人数为938,当天总营收为422949.828,LTV当天=422949.828/938=450.91;10月23日、10月24日2天的总营收是440344.1,LTV1=440344.1/938=469.45
  • 总营收行:
    • 初始人数:计算的所有指标及日期的人数之和,去重
    • LTV N天:计算所有指标及及日期的总营收/时间段内产生营收的人数
    • 比如有2个营收事件支付订单商品A、支付订单商品B,总营收LTV当天=支付订单商品A+支付订单商品B的总营收/支付订单商品A+支付订单商品B的总初始人数

路径分析

功能介绍

用户路径分析功能支持分析用户在app内的行为路径,产品运营人员通过用户路径分析可以更直观地查看用户在产品内各个模块功能之间流转的规律及特点,发现用户在哪个环节或者页面流失,为运营效果分析、APP迭代分析提供数据依据,提升用户活跃与转化。

image2023-5-12_17-37-6

操作说明

1、开通个推用户运营,使用用户路径分析功能

登录个推开发者中心,进入用户运营-产品分析-路径分析页面,新建路径分析

2、新建路径分析,配置路径分析的内容

1)选择路径的起始或结束事件

  • 如分析用户浏览商品后的路径,则选择“起始事件”为“浏览商品”;分析用户付费前的路径,则选择“结束事件”为 “付费”
  • 若需要指定事件属性进行分析,如指定浏览了某个商品id后的行为路径,可以点击“筛选事件属性”进行对应属性的选择

2

3

2)选择参与分析的事件

  • 选择用户路径中需要分析的事件行为,如浏览商品后,主要关心分享、加入购物车、取消订单等关键用户行为。
  • 针对参与分析的事件行为,可以进行事件属性筛选。例如加入购物车行为,可选择商品ID、商品名称等不同事件属性进行更深入的用户路径分析。

image2023-5-12_18-13-0

image2023-5-12_18-13-48

3)选择需要分析的时间段

  • 如分析近一周的行为路径,时间可选近一周

image2023-5-12_18-14-57

4)其他设置说明:设置中的内容为非必填项

  • 全局筛选用户:可以选择已有用户群或指定带有某些用户属性的用户进行分析,如仅分析北京地区用户的行为路径
  • 合并连续重复事件:可以将连续的事件合并,如电商类APP用户在首页点击过多次搜索,将其展开会导致路径变得很长且无分析意义,合并后多次搜索只会展示在一个节点中
  • 设置session间隔:可以设置两个路径之间的间隔,缩短路径长度,如视频类app,用户在看完一个视频(10分钟)后重新进入搜索页搜索新的内容查看,可以认为客户进入了一次新的行为路径,此时配置session 间隔为10分钟即可,无需在一次路径中展示 搜索-查看-搜索-查看-搜索-查看。

3、查看分析结果

  • 选择“起始事件”为“浏览商品”时的分析结果

image2023-5-12_18-16-23

  • 选择“结束事件”为“支付订单”时的分析结果

image2023-5-12_18-15-49

4、可将路径中的指定用户保存为用户群进行后续运营

  • 比如在申请退货环节中,需要重点分析哪类用户喜欢申请退货,则可以将“申请退货”节点中的用户保存为用户群,进行用户分析然后根据洞察分析的结果进行策略制定以及用户触达,减少申请退货量。

image2023-5-12_18-16-45

自定义分析

为了降低运营人员的使用门槛,提升产品易用性,目前用户运营平台主要针对日常运营中常用或重要的指标及流程进行了可视化的功能呈现,针对现有用户运营平台其他功能模块不能分析出来的复杂数据需求,我们提供了SQL查询的自定义分析模块,满足更高阶的分析场景。

点击自定义分析的“新建分析”功能,进入SQL查询页面
image2023-5-12_18-18-30

通过SQl查询数据

在新建分析页面通过SQL查询想要的数据,可在页面左侧查看可用的数据表和字段信息,书写好SQL语句后,点击执行,查询目标数据,目前仅支持select类型的SQL语句,单次可查询10000条数据,列表视图中仅展示前100条数据,查询出的所有数据可导出。

img

保存SQL模板

高阶的数分人员或数据研发人员编辑SQL内容后,可将SQL另存为SQL模板,供以后复用,或提供给运营人员使用。

img

结果数据可视化

img
SQL查询数据正常展示后,可通过图表可视化功能将数据配置为易于分析的图表,点击“图表视图”,点击页面中的“立即编辑”,打开【可视化图表编辑】弹框,可在该弹框中通过托拉拽的方式配置图表。当前支持的图标样式有:折线图、饼图、柱状图三种。

注意:图表配置部分更改内容后,需点击“更新图表”刷新最新的图表效果。

image2023-5-12_18-20-43

image2023-5-12_18-21-3

image2023-5-12_18-21-24

点击“确定”后编辑的图

image2023-5-12_18-22-27表会在图表视图中展示

SQL查询相关细节

数据表

数据表有历史事件表和用户信息表,通过这两张数据表能实现数据查询功能,两表均有默认存在字段及用户扩列字段、扩列字段均无对应的字段类型,均为text类型,如要对其进行使用需要进行类型的转化。

1、历史事件表(event_history)

历史事件表包含了所有事件的信息,每一行代表埋点上报的事件记录,默认字段如下:

字段 数据类型 说明 备注
gtcid string 用户ID
event_id string 事件id
create_date date 事件发生日期
session_id string 会话id
timestamp string SDK生成事件时间
platform string 平台,android/ios
sys_$wifi string 是否为wifi状态 有事件上报后默认会有该字段
sys_$network_type string 网络类型 有事件上报后默认会有该字段
sys_$carrier string 网络运营商 有事件上报后默认会有该字段
sys_$app_version string 应用版本 SDK1.3.3.0后新增,有事件上报后默认会有该字段
sys_$channel_id string 渠道id SDK1.3.3.0后新增,有事件上报后默认会有该字段
sys_$lib_version string SDK版本 SDK1.3.3.0后新增,有事件上报后默认会有该字段
sys_$manufacturer string 设备制造商 SDK1.3.3.0后新增,有事件上报后默认会有该字段
sys_$model string 设备型号 SDK1.3.3.0后新增,有事件上报后默认会有该字段
sys_$os string 操作系统 SDK1.3.3.0后新增,有事件上报后默认会有该字段
sys_$os_version string 操作系统版本 SDK1.3.3.0后新增,有事件上报后默认会有该字段
sys_$package_name string 包名 SDK1.3.3.0后新增,有事件上报后默认会有该字段

2、用户信息表(user_info)

用户信息表包含了用户属性相关的信息,每一行为埋点上报的用户属性信息,默认字段如下:

字段 数据类型 说明 备注
gtcid string 用户唯一id
create_time string 用户生成时间
active_time string 活跃时间,客户端时间
sys_$ip_province string 所在省份 有事件上报后默认会有该字段
sys_$ip_city string 所在城市 有事件上报后默认会有该字段
sys_$ip_country string 所在国家 有事件上报后默认会有该字段
sys_$app_version string 版本名称 有事件上报后默认会有该字段
sys_$channel_id string 来源渠道 有事件上报后默认会有该字段
sys_$lib_version string SDK版本 有事件上报后默认会有该字段
sys_$manufacturer string 手机品牌 有事件上报后默认会有该字段
sys_$model string 手机型号 有事件上报后默认会有该字段
sys_$os string 操作系统 有事件上报后默认会有该字段
sys_$os_version string 操作系统版本 有事件上报后默认会有该字段
sys_$screen_height string 屏幕高度 有事件上报后默认会有该字段
sys_$screen_width string 屏幕宽度 有事件上报后默认会有该字段
sys_$ip string ip地址 有事件上报后默认会有该字段
sys_$activetime string 活跃时间,服务端时间 有事件上报后默认会有该字段
sys_$firstvisittime string 首次访问时间 有事件上报后默认会有该字段
sys_$package_name string 包名 SDK1.3.3.0后新增,有事件上报后默认会有该字段

自定义时间筛选

为满足自定义看板时间筛选动态切换数据查询时间的功能,自定义分析支持基于占位符的时间筛选替换逻辑,满足用户对添加至自定义看板/解决方案的自定义分析图表实现动态时间切换的场景诉求。
注: 占位符支持设置默认值(默认值支持函数),用于没有筛选时间的情况下的兜底处理逻辑。
占位符
开始时间: ${startDate}
结束时间: ${endDate}
示例:

## 占位符设置固定时间默认值
select * from event_history where create_date >= ${startDate:'2024-01-01'} and create_date <= ${endDate:'2024-02-01'};

## 占位符设置动态时间默认值
select * from event_history where create_date >= ${startDate:today() - 30} and create_date <= ${endDate:today() - 1};

数据类型

出于查询效率的考虑,自定义查询功能对不同的数据类型有不同处理,同时某些数据类型有一些使用上的限制。

类型转换

bigint: 数值类型,长整数,常用于存储日期时间戳

string: 字符串类型,对于用户自行上传的数据均为string类型,如需使用需要对其进行相对应的转化。

date: 日期类型

datetime: 时间类型

timestamp: 时间戳类型

常用函数说明

使用自定义分析常用的函数:

1)时间日期函数

## toDateTime:string转datetime格式
select toDateTime('2023-05-25 00:00:00');

## formatDateTime:datetime或者date类型转string
select formatDateTime(create_time, '%Y-%m-%d');

## hour:截取datetime/date类型字段的小时数
select hour(create_time);

## day:截取datetime/date类型字段的天数
select day(create_time);

## month:获取datetime/date类型字段的月份
select month(create_time);

## year:获取datetime/date类型字段的年份
select year(create_time); -- create_time是datetime或者date类型

## now:获取当前时间,yyyy-MM-dd HH:mm:ss格式
select now();

## today:获取当天时间,yyyy-MM-dd格式
select today();

## dateDiff
## 获取两个datetime/date类型数据相差的月份数
select dateDiff('month', create_time1,create_time2);
## 获取两个datetime/date类型数据相差的周数
select dateDiff('week', create_time1,create_time2);
## 获取两个datetime/date类型数据相差的天数
select dateDiff('day', create_time1,create_time2);

## dateAdd:date/datetime类型数据增加指定时间
select dateAdd((now()),INTERVAL 1 day);

## dateSub:date/datetime类型数据减少指定时间
select dateSub((now()),INTERVAL 1 day);

2)字符串函数

## lower:string字符串转小写
select lower('ABc');

## upper:string字符串转大写
select upper('ABc');

## ltrim:string字符串去除左边空格
select ltrim('  Abc  ');

## rtrim:string字符串去除有边空格
select rtrim('  Abc  ');

## substring:string字符串分割
SELECT substring('hello world', 1, 5);

## replace:string字符串替换
select replace('  Abc  ', ' ', '');

## reverse:string字符串反转
select reverse('ABc');

3)数字函数

## avg:获取数值类型数据的平均值
select event_id,avg(cast(剩余额度 as float)) from event_history where 剩余额度 != '' group by event_id;

## count:获取数量
select count(1) from event_history where create_date between '2022-01-25' and '2022-02-11';

## max:获取数值类型数据的最大值
select max(cast(剩余额度 as float)) from event_history;

## min:获取数值类型数据的最小值
select min(cast(剩余额度 as float)) from event_history;

## sum:获取数值类型数据的总和
select sum(cast(剩余额度 as float)) from event_history;

常见问题

1)字段名加单引号查询不出数据

clickhouse '' 包裹的认为是字符串,并不能查询出对应的所需字段

-- 不可用

select 'create_time' from user_info;

-- 正确查询字段方式

select create_time from user_info;
或
select `create_time` from user_info;
或
select "create_time" from user_info;

2) 在SQL中转化字段数据类型可视化分析时会存在错误

由于指标/Y轴均为数字在运行时会做强制化转化,如果对于预制字段并不做对应的转化,可能将潜在的问题带到可视化,建议在自定义查询时就将字段转化完毕。

常见案例

1)查询指定时间点的用户行为数据

查询 VIP、非VIP用户在近一周晚上7-11点的启动APP的启动人数

select "是否会员",count(0) as open_count from (

select gtcid,

case when "是否为企业客户" = 'true' then '会员' else '非会员' end as "是否会员"

from

user_info

where

cast(sys_$active_time as datetime) >= now() - interval '1 week'

and extract(hour from cast(sys_$active_time as datetime)) >= 19

and extract(hour from cast(sys_$active_time as datetime)) <= 21

) as t group by "是否会员";

2)计算最后一次/第一次行为的行为属性

查询近90天内未启动APP用户的最后一次访问页面的页面名称

select

pay_count ,regist_count ,pay_count / regist_count as "注册7日内的付费率"

from

(

select

(

select

count(regist_gtcid)

from

(

select

 distinct gtcid as regist_gtcid,

 cast(sys_$firstvisittime as datetime) as start_date,

 cast(sys_$firstvisittime as datetime) + interval '7 day' as end_date

from

 user_info

where

 cast(sys_$firstvisittime as datetime) >= cast('2021-10-20 11:36:45' as datetime) - interval '30 day'

) t1

left join event_history as e on

e.gtcid = t1.regist_gtcid

and e.event_id = '付费'

where  e.create_date >t1.start_date

and e.create_date <= t1.end_date

) as pay_count,

(

select

count(0)

from

(

select

 distinct gtcid as regist_gtcid

from

 user_info

where

 cast(sys_$firstvisittime as datetime) >= cast('2021-10-20 11:36:45' as datetime) - interval '30 day'

) as a1) as regist_count

) as b;

3)根据业务需求进行活跃用户数去重:

查询播放歌曲的月活用户数

select count(distinct gtcid) from event_history where event_id = '播放音乐' and create_date between '2022-03-01' and '2022-03-31';

文档中心搜索

技术
咨询

微信扫一扫

随时联系技术支持

在线
咨询