Relatório do Painel - Usuários Engajados Diariamente

Este é um relatório de painel em SQL para usuários engajados diariamente.

O relatório SQL contará o número de usuários exclusivos que curtiram ou postaram em um site a cada dia.

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

SELECT 
  ua.created_at::date AS day,
  COUNT(DISTINCT ua.user_id) AS engaged_users
FROM user_actions ua
INNER JOIN topics t on t.id = ua.target_topic_id
WHERE ua.created_at::date BETWEEN :start_date AND :end_date
    AND ua.action_type IN (1, 4, 5, 12)
GROUP BY ua.created_at::date
ORDER BY ua.created_at::date ASC 

Detalhamento da Consulta:

  • Parâmetros de Data: A consulta aceita dois parâmetros de data, :start_date e :end_date, que permitem especificar o intervalo para o relatório.
  • Seleção: Ela seleciona a data da ação (ua.created_at::date) e conta os IDs de usuário distintos (COUNT(DISTINCT ua.user_id)) que realizaram as ações, apelidando essa contagem como engaged_users.
  • Fonte de Dados: A consulta extrai da tabela user_actions (ua) e a une com a tabela topics (t) para focar em ações relacionadas a tópicos.
  • Tipos de Ação: Ela filtra as ações para incluir apenas aquelas com os tipos 1, 4, 5 e 12. Esses tipos de ação correspondem às seguintes atividades específicas:
    • 1: Curtir
    • 4: Novo Tópico
    • 15: Responder
    • 12: Nova Mensagem Privada
  • Agrupamento e Ordenação: Os resultados são agrupados pela data da ação e ordenados em ordem crescente, fornecendo uma visão cronológica da atividade.

Resultados de Exemplo

dia engaged_users
2023-01-01 136
2023-01-02 124
2023-01-03 187
2023-01-04 287
2023-01-05 110
2023-01-06 95
2023-01-07 73
5 curtidas

Isso é bastante interessante quando você vê apresentado. Seria bom talvez ter uma versão que incluísse Reações e Votações (enquetes, votos em tópicos, votos em posts - talvez até comentários de votação em posts). :thinking:

2 curtidas