这些查询提供了在选定时间范围内创建的新用户帐户数量的明细,不包括暂存和未激活的帐户。总数按每周/每月/每年注册数量、所选时间段的累计总数以及包括所有先前注册的累计总数进行细分。
注意: 如果用户被删除,其记录将不再出现在数据库中,因此也不会再包含在查询结果中。这可能导致最近的运行结果与之前的运行结果存在差异。
每周注册量
-- [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 "周开始日期",
signups AS "每周注册量",
SUM(signups::int) OVER (ORDER BY week) AS "累计总数",
(SUM(signups::int) OVER (ORDER BY week) + previous::int) AS "总计"
FROM weekly_signups, all_to_date
ORDER BY week ASC
| 周开始日期 |
每周注册量 |
累计总数 |
总计 |
| 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 |
每月注册量
-- [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 "月份",
signups AS "每月注册量",
SUM(signups::int) OVER (ORDER BY month) AS "累计总数",
(SUM(signups::int) OVER (ORDER BY month) + previous::int) AS "总计"
FROM monthly_signups, all_to_date
ORDER BY month
| 月份 |
每月注册量 |
累计总数 |
总计 |
| 2023年6月 |
596 |
596 |
45307 |
| 2023年7月 |
517 |
1113 |
45307 |
| 2023年8月 |
583 |
1696 |
45890 |
| 2023年9月 |
102 |
1798 |
46005 |
每年注册量
-- [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 "年份",
signups AS "每年注册量",
SUM(signups::int) OVER (ORDER BY year) AS "累计总数",
(SUM(signups::int) OVER (ORDER BY year) + previous::int) AS "总计"
FROM yearly_signups, all_to_date
ORDER BY year ASC
| 年份 |
每年注册量 |
累计总数 |
总计 |
| 2019 |
3590 |
3590 |
23135 |
| 2020 |
4258 |
7848 |
27393 |
| 2021 |
5908 |
13756 |
33301 |
| 2022 |
7889 |
21645 |
41190 |
| 2023 |
4815 |
26460 |
46005 |