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_datee: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 comoengaged_users. - Fonte de Dados: A consulta extrai da tabela
user_actions(ua) e a une com a tabelatopics(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: Curtir4: Novo Tópico15: Responder12: 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 |