これは、送信されたメールのダッシュボードレポートの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 |
| … | … |