ダッシュボードレポート - 送信メール

これは、送信されたメールのダッシュボードレポートのSQLバージョンです。

このレポートは、指定された期間内にDiscourseプラットフォームから送信されたメールの総数を日ごとに内訳表示します。メールアクティビティの監視、傾向の特定、およびメールシステムの正常な機能の確認に役立ちます。

-- [params]
-- date :start_date
-- date :end_date

SELECT
  DATE(created_at) AS date_sent,
  COUNT(*) AS total_emails_sent
FROM email_logs
WHERE created_at BETWEEN :start_date AND :end_date
GROUP BY date_sent
ORDER BY date_sent ASC

SQLクエリの説明

このSQLクエリは、指定された期間内に毎日送信されたメールの数を取得するように設計されています。クエリのステップごとの説明は次のとおりです。

パラメータ

このクエリは、:start_date:end_dateの2つのパラメータを受け入れ、ユーザーがレポートの日付範囲を指定できるようにします。両方のdateパラメータは、YYYY-MM-DDの日付形式を受け入れます。

クエリの内訳

  • DATE(sent_at) AS date_sent: sent_atタイムスタンプから日付部分を抽出し、結果の列をdate_sentとしてラベル付けします。
  • COUNT(*) AS total_emails_sent: 各グループの行(メール)の総数をカウントし、結果をtotal_emails_sentとしてラベル付けします。
  • FROM email_logs: この句は、メールが送信された各インスタンスを記録するemail_logsテーブルからデータが取得されることを示します。
  • WHERE sent_at BETWEEN :start_date AND :end_date: この句は、sent_atタイムスタンプが指定された日付範囲内にあるレコードのみを含めるようにデータをフィルタリングします。
  • GROUP BY date_sent: この句は、メールが送信された日付で結果をグループ化します。これは、COUNT関数が1日あたりの合計を計算するために必要です。
  • ORDER BY date_sent ASC: この句は、date_sent列で結果を昇順に並べ替えます。これにより、レポートには範囲内の最も早い日付から最も遅い日付までのデータが表示されます。

結果例

date_sent total_emails_sent
2023-11-19 264
2023-11-20 932
2023-11-21 678
2023-11-22 637
2023-11-23 369

デフォルトのメールログ保持期間は90日ですが、管理設定の「メールログ削除日数」で調整できます(無期限に保持するには「0」に設定するオプションもあります)。

昨年のログが見られなかった理由を疑問に思っていた方のために。 :slight_smile:

「いいね!」 1