SQL 刷题/【字节跳动】统计 Pro 用户第一季度活跃积分
上一题下一题困难通过率 50%

【字节跳动】统计 Pro 用户第一季度活跃积分

JOIN 连接聚合函数GROUP BYCASE WHEN用户行为分析面试真题

题目描述

来源:字节跳动 SQL 面试真题

某在线项目管理 SaaS 公司希望评估付费用户的产品使用深度和活跃度,识别高价值活跃用户,为后续服务和营销策略提供依据。

数据表

users 用户信息表

字段类型说明
user_idINT用户唯一编号,主键
user_nameVARCHAR(50)用户名
registration_dateDATE注册日期
plan_typeVARCHAR(20)订阅计划,例如 Free、Pro、Enterprise

user_events 用户事件表

字段类型说明
event_idINT事件唯一编号,主键
user_idINT执行事件的用户 ID
event_typeVARCHAR(50)事件类型
event_timestampDATETIME事件发生时间

筛选条件

只统计同时满足以下条件的用户:

  1. registration_date 在 2025-01-01 至 2025-06-30 之间,包含首尾两日。
  2. plan_type = 'Pro'。
  3. 在 2025 年第一季度至少发生过一次 login 事件。

积分和事件数均只统计 2025 年第一季度,即 2025-01-01 00:00:00 至 2025-04-01 00:00:00 左闭右开范围内的事件。

积分规则

event_type积分
create_task5
export_report10
invite_member8
其他事件,包括 login1

输出要求

字段说明
user_profile用户名(用户ID),例如 Alice(101)
total_activity_scoreQ1 全部事件的总活跃积分
avg_monthly_eventsQ1 总事件数除以 3,四舍五入保留 2 位小数

排序规则:

  1. total_activity_score 降序。
  2. avg_monthly_events 降序。
  3. user_id 升序。

数据样例

当前运行环境
user_idPKINTuser_nameVARCHAR(50)registration_dateDATEplan_typeVARCHAR(20)
101Alice2025-01-05Pro
102Bob2025-02-10Pro
103Carol2025-01-20Free
104David2024-12-31Pro
105Emma2025-03-01Enterprise
106Frank2025-06-15Pro
107Grace2025-03-20Pro
108Henry2025-03-15Pro
输入数据显示 8 / 9
SQL 编辑器正在保存草稿...
正在加载 SQL 编辑器...

运行你的 SQL 查询后,结果将显示在这里