【蚂蚁】统计 2023 年 1 月用户最长连续登录天数
GROUP BY子查询窗口函数日期函数用户行为分析留存分析面试真题
题目描述
来源:蚂蚁 SQL 面试真题
你正在搭建一个用户活跃度画像,其中一个与活跃度相关的特征是“最长连续登录天数”。请使用 SQL 计算 2023 年 1 月 1 日至 2023 年 1 月 31 日期间,每个用户的最长连续登录天数。
登陆表:tb_dau
| 字段 | 类型 | 说明 |
|---|---|---|
| fdate | DATE | 登录日期 |
| user_id | BIGINT | 用户 ID |
同一用户同一天可能存在重复登录记录,统计连续天数时同一天只能计算一次。
题目要求
- 只统计
fdate落在 2023-01-01 至 2023-01-31(含首尾两天)的登录记录。 - 每个用户输出一行。
- 如果用户在统计区间内只登录 1 天,则最长连续登录天数为 1。
- 结果按
user_id升序排列。
期望输出列
| 列名 | 说明 |
|---|---|
| user_id | 用户 ID |
| max_consec_days | 用户最长连续登录天数 |
数据样例
| fdateDATE | user_idBIGINT |
|---|---|
| 2022-12-31 | 10000 |
| 2023-01-01 | 10000 |
| 2023-01-02 | 10000 |
| 2023-01-04 | 10000 |
| 2023-02-01 | 10000 |
| 2023-01-06 | 10001 |
| 2023-01-07 | 10001 |
| 2023-01-08 | 10001 |
输入数据显示 8 / 14 行
SQL 编辑器正在保存草稿...
Ctrl + Enter 运行
正在加载 SQL 编辑器...
运行你的 SQL 查询后,结果将显示在这里