数据人与超自然意识 发表于 2024-7-12 04:26:54

大数据开发中怎样盘算用户留存及SQL示例

在大数据开发领域,用户留存是一个关键指标,它反映了产品吸引并保留用户的能力。
https://img-blog.csdnimg.cn/img_convert/3537ba46abd5f55d566c0ae9b8ff8723.png
留存率的盘算不仅有助于评估产品的健康状态,还能为产品优化和市场战略提供紧张依据。
本文将具体介绍怎样在大数据开发中盘算用户留存,并附带具体的SQL示例。


留存的定义与意义

https://img-blog.csdnimg.cn/img_convert/6eb83bc9432e7da7fe2e1467e47caa78.png
留存是指用户在某一时间点(如注册日、首次使用日)后,在后续特定时间段内继续使用该产品的行为。留存率则是这些留存用户占初始用户的比例。留存率越高,分析产品越能吸引并保持用户的爱好。
留存的意义在于:


[*]评估产品吸引力:留存率高的产品通常意味着用户对产品有较高的满意度和忠诚度。
[*]指导产品优化:通太过析不同时间段的留存率,可以识别产品改进的方向,如用户体验、功能设计等。
[*]制定市场战略:根据留存数据,可以制定更有针对性的营销战略,提高用户粘性和活跃度。
留存率的盘算公式

https://img-blog.csdnimg.cn/img_convert/c2cbd1634c883f6f31ac68d01a3b6c00.png
留存率的盘算公式通常为:
                                       留存率                            =                                       基准日后第n天活跃用户数                               基准日用户数                                    ×                            100                            %                                  \text{留存率} = \frac{\text{基准日后第n天活跃用户数}}{\text{基准日用户数}} \times 100\%                     留存率=基准日用户数基准日后第n天活跃用户数​×100%
此中,基准日可以是用户注册日、首次使用日等,n可以是1天、7天、30天等,具体取决于分析需求。
SQL示例:盘算次日留存率

以下是一个使用SQL盘算次日留存率的示例。假设我们有一个用户行为日记表user_log,包含字段user_id(用户ID)、login_time(登录时间)等。
https://img-blog.csdnimg.cn/img_convert/685a8b64a4da43761842e2ca1dc976cb.png
第一步:数据预处理

起首,我们需要从用户行为日记表中提取出每个用户的首次登录时间和后续登录时间。这里我们使用窗口函数来找出每个用户的首次登录时间。
WITH first_login AS (
    SELECT
      user_id,
      MIN(login_time) AS first_login_time
    FROM
      user_log
    GROUP BY
      user_id
)
第二步:盘算次日留存用户

接下来,我们将用户行为日记表与首次登录时间表举行连接,并筛选出次日登录的用户。
, retention_users AS (
    SELECT
      a.user_id,
      a.login_time,
      DATE_ADD(b.first_login_time, INTERVAL 1 DAY) AS expected_next_day
    FROM
      user_log a
    JOIN
      first_login b ON a.user_id = b.user_id
    WHERE
      DATE(a.login_time) = DATE(expected_next_day)
)
第三步:盘算留存率

最后,我们盘算次日留存用户数占初始用户数的比例。
SELECT
    COUNT(DISTINCT r.user_id) AS next_day_retention_users,
    COUNT(DISTINCT f.user_id) AS initial_users,
    ROUND(COUNT(DISTINCT r.user_id) / COUNT(DISTINCT f.user_id) * 100, 2) AS next_day_retention_rate
FROM
    first_login f
LEFT JOIN
    retention_users r ON f.user_id = r.user_id;
完成SQL

这个示例假设你有一个名为user_log的表,此中包含user_id(用户ID)和login_time(登录时间)字段。
-- 计算次日留存率
WITH FirstLogin AS (
    -- 找出每个用户的首次登录时间
    SELECT
      user_id,
      MIN(login_time) AS first_login_time
    FROM
      user_log
    GROUP BY
      user_id
),
RetentionUsers AS (
    -- 找出次日登录的用户
    SELECT
      a.user_id,
      a.login_time,
      DATE_ADD(b.first_login_time, INTERVAL 1 DAY) AS expected_next_day
    FROM
      user_log a
    JOIN
      FirstLogin b ON a.user_id = b.user_id
    WHERE
      DATE(a.login_time) = DATE(expected_next_day)
)
-- 计算留存率
SELECT
    COUNT(DISTINCT RetentionUsers.user_id) AS next_day_retention_users,
    COUNT(DISTINCT FirstLogin.user_id) AS initial_users,
    ROUND(COUNT(DISTINCT RetentionUsers.user_id) / COUNT(DISTINCT FirstLogin.user_id) * 100, 2) AS next_day_retention_rate
FROM
    FirstLogin
LEFT JOIN
    RetentionUsers ON FirstLogin.user_id = RetentionUsers.user_id;
这个SQL查询起首使用WITH子句创建了两个暂时表:FirstLogin和RetentionUsers。FirstLogin表包含每个用户的首次登录时间,而RetentionUsers表包含那些在首次登录后的次日也登录了的用户。最后,主查询盘算了次日留存用户数、初始用户数以及次日留存率。
https://img-blog.csdnimg.cn/img_convert/65589f27349dc90e688dc385bb0df5be.png
其他留存率盘算方法

除了次日留存率,我们还可以盘算3日留存率、7日留存率等。这些盘算方法的思路与次日留存率类似,只是在筛选条件中将INTERVAL 1 DAY改为相应的天数即可。
总结

用户留存率是权衡产品健康度和用户粘性的紧张指标。
在大数据开发中,我们可以通过SQL等工具高效地盘算留存率,为产品优化和市场战略提供有力支持。
本文介绍了留存的定义、意义以及具体的SQL示例,盼望能对大数据开发人员有所帮助。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 大数据开发中怎样盘算用户留存及SQL示例