这是每日活跃用户仪表板报告的 SQL 版本。
SQL 报告将计算每天在网站上点赞或发帖的独立用户数量。
--[params]
-- date :start_date
-- date :end_date
SELECT
ua.created_at::date AS day,
COUNT(DISTINCT ua.user_id) AS engaged_users
FROM user_actions ua
INNER JOIN topics t on t.id = ua.target_topic_id
WHERE ua.created_at::date BETWEEN :start_date AND :end_date
AND ua.action_type IN (1, 4, 5, 12)
GROUP BY ua.created_at::date
ORDER BY ua.created_at::date ASC
查询细分:
- 日期参数:查询接受两个日期参数
:start_date和:end_date,允许您指定报告的范围。 - 选择:它选择操作的日期(
ua.created_at::date)并计算执行操作的独立用户 ID(COUNT(DISTINCT ua.user_id)),将此计数别名为engaged_users。 - 数据源:查询从
user_actions表(ua)中提取数据,并将其与topics表(t)连接,以关注与主题相关的操作。 - 操作类型:它将操作筛选为仅包含类型为 1、4、5 和 12 的操作。这些操作类型对应于以下特定活动:
1: 点赞4: 新主题15: 回复12: 新私信
- 分组和排序:结果按操作日期分组并按升序排序,为您提供活动的时间顺序视图。
示例结果
| day | engaged_users |
|---|---|
| 2023-01-01 | 136 |
| 2023-01-02 | 124 |
| 2023-01-03 | 187 |
| 2023-01-04 | 287 |
| 2023-01-05 | 110 |
| 2023-01-06 | 95 |
| 2023-01-07 | 73 |