【携程】统计商城每日访问到下单转化率
JOIN 连接聚合函数GROUP BYCASE WHEN日期函数DISTINCT用户行为分析漏斗分析面试真题
题目描述
来源:携程 SQL 面试真题
某商城需要根据订单数据和用户访问数据,统计每天用户从访问到下单的转化率。
数据表
order_tb 订单信息表
| 字段 | 类型 | 说明 |
|---|---|---|
| order_id | BIGINT | 订单 ID |
| user_id | BIGINT | 用户 ID |
| order_price | DECIMAL | 订单金额 |
| order_time | DATETIME | 订单创建时间 |
visit_tb 用户访问信息表
| 字段 | 类型 | 说明 |
|---|---|---|
| info_id | BIGINT | 访问信息 ID |
| user_id | BIGINT | 用户 ID |
| visit_time | DATETIME | 访问时间 |
| leave_time | DATETIME | 离开时间 |
转化率口径
- 当日访问人数:当天产生过至少一次访问记录的去重用户数。
- 当日下单人数:当天访问用户中,当天至少下过一笔订单的去重用户数。
- 同一用户当天多次访问或下多笔订单,人数都只计算一次。
- 转化率 = 当日下单人数 / 当日访问人数 × 100%。
题目要求
- 输出日期和转化率。
- 转化率以百分数形式输出,四舍五入保留 1 位小数。
- 按日期升序排列。
期望输出列
| 列名 | 说明 |
|---|---|
| date | 统计日期,格式 YYYY-MM-DD |
| cr | 当日访问到下单转化率 |
数据样例
| order_idPKBIGINT | user_idBIGINT | order_priceDECIMAL(12, 2) | order_timeDATETIME |
|---|---|---|---|
| 101 | 11 | 380 | 2022-09-01 09:00:00 |
| 102 | 12 | 200 | 2022-09-01 10:00:00 |
| 103 | 13 | 260 | 2022-09-01 12:00:00 |
| 104 | 11 | 100 | 2022-09-02 11:00:00 |
| 105 | 12 | 150 | 2022-09-02 12:00:00 |
| 106 | 12 | 1200 | 2022-09-02 13:00:00 |
| 107 | 11 | 60 | 2022-09-03 09:00:00 |
| 108 | 13 | 380 | 2022-09-03 09:30:00 |
输入数据显示 8 / 8 行
SQL 编辑器正在保存草稿...
Ctrl + Enter 运行
正在加载 SQL 编辑器...
运行你的 SQL 查询后,结果将显示在这里