Estas consultas fornecem um detalhamento de quantas novas contas de usuário foram criadas dentro do período de tempo, excluindo contas em estágio e não ativadas. Os totais são divididos pelo número de cadastros a cada semana/mês/ano, um total acumulado para o período selecionado e um número total até o momento, que inclui todos os cadastros anteriores.
NB: Se um usuário for excluído, seus registros não aparecerão mais no banco de dados e, portanto, não serão mais incluídos nos resultados da consulta. Isso pode levar a variações ao comparar execuções recentes com as anteriores.
Cadastros Semanais
-- [params]
-- date :start_date
-- date :end_date
WITH weekly_signups AS (
SELECT
to_char(date_trunc('week', created_at)::date,'YYYY-MM-DD') AS week,
COUNT(*) AS signups
FROM users
WHERE created_at::date BETWEEN :start_date::date AND :end_date::date
AND staged = false
AND active = true
GROUP BY week
),
all_to_date AS (
SELECT COUNT(*) AS previous
FROM users
WHERE created_at::date < :start_date
AND staged = false
AND active = true
)
SELECT
week AS "Início da Semana",
signups AS "Cadastros Semanais",
SUM(signups::int) OVER (ORDER BY week) AS "Total Acumulado",
(SUM(signups::int) OVER (ORDER BY week) + previous::int) AS "Total Geral"
FROM weekly_signups, all_to_date
ORDER BY week ASC
| Início da Semana |
Cadastros Semanais |
Total Acumulado |
Total Geral |
| 2023-07-31 |
98 |
98 |
45418 |
| 2023-08-07 |
141 |
239 |
45559 |
| 2023-08-14 |
129 |
368 |
45688 |
| 2023-08-21 |
126 |
494 |
45814 |
| 2023-08-28 |
138 |
632 |
45952 |
| 2023-09-04 |
53 |
685 |
46005 |
Cadastros Mensais
-- [params]
-- date :start_date
-- date :end_date
WITH monthly_signups AS (
SELECT
date_trunc('month', created_at)::date AS month,
to_char(date_trunc('month', created_at)::date,'Month YYYY') AS month_display,
COUNT(*) AS signups
FROM users
WHERE created_at::date BETWEEN :start_date::date AND :end_date::date
AND staged = false
AND active = true
GROUP BY month, month_display
),
all_to_date AS (
SELECT COUNT(*) AS previous
FROM users
WHERE created_at::date < :start_date
AND staged = false
AND active = true
)
SELECT
month_display AS "Mês",
signups AS "Cadastros Mensais",
SUM(signups::int) OVER (ORDER BY month) AS "Total Acumulado",
(SUM(signups::int) OVER (ORDER BY month) + previous::int) AS "Total Geral"
FROM monthly_signups, all_to_date
ORDER BY month
| Mês |
Cadastros Mensais |
Total Acumulado |
Total Geral |
| Junho 2023 |
596 |
596 |
44790 |
| Julho 2023 |
517 |
1113 |
45307 |
| Agosto 2023 |
583 |
1696 |
45890 |
| Setembro 2023 |
102 |
1798 |
46005 |
Cadastros Anuais
-- [params]
-- date :start_date
-- date :end_date
WITH yearly_signups AS (
SELECT
to_char(date_trunc('year', created_at)::date,'YYYY') AS year,
COUNT(*) AS signups
FROM users
WHERE created_at::date BETWEEN :start_date::date AND :end_date::date
AND staged = false
AND active = true
GROUP BY year
),
all_to_date AS (
SELECT COUNT(*) AS previous
FROM users
WHERE created_at::date < :start_date
AND staged = false
AND active = true
)
SELECT
year AS "Ano",
signups AS "Cadastros Anuais",
SUM(signups::int) OVER (ORDER BY year) AS "Total Acumulado",
(SUM(signups::int) OVER (ORDER BY year) + previous::int) AS "Total Geral"
FROM yearly_signups, all_to_date
ORDER BY year ASC
| Ano |
Cadastros Anuais |
Total Acumulado |
Total Geral |
| 2019 |
3590 |
3590 |
23135 |
| 2020 |
4258 |
7848 |
27393 |
| 2021 |
5908 |
13756 |
33301 |
| 2022 |
7889 |
21645 |
41190 |
| 2023 |
4815 |
26460 |
46005 |