これは、毎日のエンゲージメントユーザーに関するダッシュボードレポートの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
クエリの内訳:
- 日付パラメータ: クエリは2つの日付パラメータ(
: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 |