【携程】统计各会员等级访问人次与访问人数
JOIN 连接聚合函数GROUP BYORDER BYDISTINCT用户行为分析面试真题
题目描述
来源:携程 SQL 面试真题
某商家需要结合用户访问数据和会员等级数据,统计不同会员等级的访问人次及访问人数。
数据表
visit_tb 用户访问信息表
| 字段 | 类型 | 说明 |
|---|---|---|
| info_id | BIGINT | 访问信息 ID |
| user_id | BIGINT | 用户 ID |
| visit_time | DATETIME | 访问时间 |
| leave_time | DATETIME | 离开时间 |
uservip_tb 会员等级信息表
| 字段 | 类型 | 说明 |
|---|---|---|
| user_id | BIGINT | 用户 ID |
| vip | VARCHAR | 会员等级 |
| point | INT | 会员积分 |
统计口径
- 访问人次:该会员等级用户产生的访问记录总数,同一用户多次访问分别计数。
- 访问人数:该会员等级产生过访问的去重用户数。
- 只输出实际产生访问记录的会员等级。
题目要求
- 输出会员等级、访问人次和访问人数。
- 按访问人次降序排列;访问人次相同时按会员等级升序排列。
期望输出列
| 列名 | 说明 |
|---|---|
| vip | 会员等级 |
| visit_nums | 访问人次 |
| visit_users | 访问人数 |
数据样例
| info_idPKBIGINT | user_idBIGINT | visit_timeDATETIME | leave_timeDATETIME |
|---|---|---|---|
| 911 | 10 | 2022-09-01 08:00:00 | 2022-09-01 09:02:00 |
| 912 | 11 | 2022-09-01 08:30:00 | 2022-09-01 09:10:00 |
| 913 | 12 | 2022-09-01 09:50:00 | 2022-09-01 10:12:00 |
| 914 | 13 | 2022-09-01 11:40:00 | 2022-09-01 12:22:00 |
| 921 | 11 | 2022-09-02 10:30:00 | 2022-09-02 11:05:00 |
| 922 | 11 | 2022-09-02 12:00:00 | 2022-09-02 12:02:00 |
| 923 | 12 | 2022-09-02 11:40:00 | 2022-09-02 13:15:00 |
| 924 | 13 | 2022-09-02 09:00:00 | 2022-09-02 09:02:00 |
输入数据显示 8 / 12 行
SQL 编辑器正在保存草稿...
Ctrl + Enter 运行
正在加载 SQL 编辑器...
运行你的 SQL 查询后,结果将显示在这里