Отчет панели управления - отправленные электронные письма

Это 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, что позволяет пользователю указать диапазон дат для отчета. Оба параметра даты принимают формат ГГГГ-ММ-ДД.

Разбор запроса

  • DATE(created_at) AS date_sent: Извлекает часть даты из временной метки created_at и именует результирующий столбец как date_sent.
  • COUNT(*) AS total_emails_sent: Подсчитывает общее количество строк (писем) для каждой группы, присваивая результату имя total_emails_sent.
  • FROM email_logs: Этот пункт указывает, что данные будут получены из таблицы email_logs, которая регистрирует каждый случай отправки электронного письма.
  • WHERE created_at BETWEEN :start_date AND :end_date: Этот пункт фильтрует данные, включая только те записи, где временная метка created_at попадает в указанный диапазон дат.
  • GROUP BY date_sent: Этот пункт группирует результаты по дате отправки писем. Это необходимо для того, чтобы функция COUNT могла рассчитать общее количество за каждый день.
  • 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 дней, но его можно изменить с помощью настройки администратора «Удалить журналы электронной почты через N дней» (с возможностью установки значения 0 для их бесконечного хранения).

На всякий случай, если кто-то wondered, почему просмотр за прошлый год не работал. :slight_smile: