Ceci est une version SQL du rapport de tableau de bord pour les e-mails envoyés.
Ce rapport fournit une ventilation quotidienne du nombre total d’e-mails envoyés depuis la plateforme Discourse dans une plage de dates spécifiée. Il est utile pour surveiller l’activité des e-mails, identifier les tendances et s’assurer que le système de messagerie fonctionne correctement.
-- [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
Explication de la requête SQL
La requête SQL est conçue pour récupérer le nombre d’e-mails envoyés chaque jour dans une période donnée. Voici une explication étape par étape de la requête :
Paramètres
La requête accepte deux paramètres, :start_date et :end_date, permettant à l’utilisateur de spécifier la plage de dates pour le rapport. Les deux paramètres de date acceptent le format de date AAAA-MM-JJ.
Répartition de la requête
DATE(sent_at) AS date_sent: Extrait la partie date de l’horodatagesent_atet nomme la colonne résultantedate_sent.COUNT(*) AS total_emails_sent: Compte le nombre total de lignes (e-mails) pour chaque groupe, nommant le résultattotal_emails_sent.FROM email_logs: Cette clause indique que les données seront récupérées de la tableemail_logs, qui enregistre chaque instance d’un e-mail envoyé.WHERE sent_at BETWEEN :start_date AND :end_date: Cette clause filtre les données pour inclure uniquement les enregistrements où l’horodatagesent_atse situe dans la plage de dates spécifiée.GROUP BY date_sent: Cette clause regroupe les résultats par la date à laquelle les e-mails ont été envoyés. Ceci est nécessaire pour que la fonctionCOUNTcalcule le total par jour.ORDER BY date_sent ASC: Cette clause trie les résultats par ordre croissant selon la colonnedate_sent, garantissant que le rapport affiche les données en commençant par la date la plus ancienne jusqu’à la plus récente dans la plage.
Exemple de résultats
| 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 |
| … | … |