pg sql 留存率 代码
时间: 2024-06-20 12:03:27 浏览: 127
PG SQL是PostgreSQL数据库的简称,留存率是指用户在一段时间内仍然使用某个产品或服务的比例。PG SQL可以用来计算留存率,具体的代码实现如下:
```
-- 创建用户表
CREATE TABLE users (
user_id INTEGER,
created_at TIMESTAMP,
PRIMARY KEY (user_id)
);
-- 创建活跃用户表
CREATE TABLE active_users (
user_id INTEGER,
last_active TIMESTAMP,
PRIMARY KEY (user_id)
);
-- 计算留存率
WITH retention AS (
SELECT
DATE_TRUNC('day', created_at) AS cohort_day,
DATE_TRUNC('day', last_active) AS active_day,
COUNT(DISTINCT users.user_id) AS cohort_size,
COUNT(DISTINCT active_users.user_id) AS active_size
FROM users
JOIN active_users ON users.user_id = active_users.user_id
WHERE created_at >= '2022-01-01'
AND last_active >= '2022-01-01'
GROUP BY 1, 2
)
SELECT
cohort_day,
active_day,
cohort_size,
active_size,
ROUND(active_size::NUMERIC / cohort_size, 2) AS retention_rate
FROM retention;
```
以上代码中,首先创建了两个表:`users`表和`active_users`表。`users`表用于存储所有用户的信息,包括用户ID和创建时间;`active_users`表用于存储所有活跃用户的信息,包括用户ID和最后活跃时间。
接下来使用WITH语句计算留存率。首先按照创建日期和最后活跃日期对用户进行分组,统计每组中的用户数量和活跃用户数量。最后将结果按照日期和留存率进行输出。
如果你需要更加详细的介绍或者代码实现,请提供更加具体的问题。
阅读全文