ClickHouse 查询语句:计算每日活跃用户数和新增用户数
这是一个 ClickHouse 查询语句,用于查询某个时间段内每天的活跃用户数和新增用户数。
首先,使用子查询和 GROUP BY 语句从原始数据表中获取每天使用过的所有 App 的列表,并将它们组合成一个数组 'total' 和一个数组 'total_increase',分别表示每天使用过的 App 列表和每天新增的 App 列表。然后,将这些数组与日期数组 't' 一起组成一个 ARRAY 数组。
接着,使用 JOIN 语句和 arrayEnumerate 函数将日期数组 't' 中的每个元素与数组 ARRAY 中的对应元素的索引 'i' 进行匹配。在 SELECT 语句中,使用条件语句 if 来判断当前索引 'i' 是否大于等于 31,如果是,则从数组 'total' 中取出最近 30 天的 App 列表并去重,否则从数组 'total' 中取出从第一个元素到当前索引 'i' 的 App 列表并去重。同样地,使用条件语句 if 来计算每个时间点的新增用户数,如果当前索引 'i' 大于等于 31,则从数组 'total_increase' 中取出最近 30 天的新增用户数并求和,否则从数组 'total_increase' 中取出从第一个元素到当前索引 'i' 的新增用户数并求和。
最后,使用 WHERE 语句来限制结果集中的日期范围,只返回从指定日期 ('#monthly_active_new_business.start#') 开始的记录。
原文地址: https://www.cveoy.top/t/topic/oB2d 著作权归作者所有。请勿转载和采集!