Relatório do Painel - Emails Enviados

Este é um relatório de painel em versão SQL para emails enviados.

Este relatório fornece um detalhamento diário do número total de e-mails enviados da plataforma Discourse dentro de um intervalo de datas especificado. É útil para monitorar a atividade de e-mail, identificar tendências e garantir que o sistema de e-mail esteja funcionando corretamente.

-- [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  

Explicação da Consulta SQL

A consulta SQL foi projetada para recuperar a contagem de e-mails enviados a cada dia dentro de um período determinado. Aqui está uma explicação passo a passo da consulta:

Parâmetros

A consulta aceita dois parâmetros, :start_date e :end_date, permitindo que o usuário especifique o intervalo de datas para o relatório. Ambos os parâmetros de data aceitam o formato de data AAAA-MM-DD.

Detalhamento da Consulta

  • DATE(sent_at) AS date_sent: Extrai a parte da data do carimbo de data/hora sent_at e rotula a coluna resultante como date_sent.
  • COUNT(*) AS total_emails_sent: Conta o número total de linhas (e-mails) para cada grupo, rotulando o resultado como total_emails_sent.
  • FROM email_logs: Esta cláusula indica que os dados serão recuperados da tabela email_logs, que registra cada instância de um e-mail sendo enviado.
  • WHERE sent_at BETWEEN :start_date AND :end_date: Esta cláusula filtra os dados para incluir apenas os registros onde o carimbo de data/hora sent_at está dentro do intervalo de datas especificado.
  • GROUP BY date_sent: Esta cláusula agrupa os resultados pela data em que os e-mails foram enviados. Isso é necessário para que a função COUNT calcule o total por dia.
  • ORDER BY date_sent ASC: Esta cláusula ordena os resultados em ordem crescente pela coluna date_sent, garantindo que o relatório mostre os dados começando da data mais antiga para a mais recente dentro do intervalo.

Exemplo de Resultados

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

Vale a pena notar também que o período padrão para retenção de logs de e-mail é de 90 dias, mas pode ser ajustado usando a configuração de administrador delete email logs after days (com a opção de defini-la como 0 para mantê-los indefinidamente).

Caso alguém tenha se perguntado por que olhar os logs do ano passado não estava funcionando. :slight_smile:

1 curtida