【蚂蚁】查询连续入住多晚的客户
WHERE 条件JOIN 连接日期函数ORDER BY用户行为分析面试真题
题目描述
来源:蚂蚁 SQL 面试真题
某酒店需要分析从 2022 年 6 月 12 日开始连续入住多晚的客户信息。
数据表
guestroom_tb 客房信息表
| 字段 | 类型 | 说明 |
|---|---|---|
| room_id | BIGINT | 房间号 |
| room_type | VARCHAR | 房间类型 |
| room_price | DECIMAL | 房间价格 |
checkin_tb 入住信息表
| 字段 | 类型 | 说明 |
|---|---|---|
| info_id | BIGINT | 入住信息 ID |
| room_id | BIGINT | 房间号 |
| user_id | BIGINT | 客户 ID |
| checkin_time | DATETIME | 入住时间 |
| checkout_time | DATETIME | 退房时间 |
题目要求
请查询入住时间为 2022-06-12 当天,并且从 6 月 12 日开始连续入住多晚的客户信息。
- 连续入住天数按退房日期与入住日期的日期差计算。
- 连续入住天数大于 1 天的客户才需要输出。
- 输出客户 ID、房间号、房间类型和连续入住天数。
- 按连续入住天数升序、房间号升序、客户 ID 降序排列。
期望输出列
| 列名 | 说明 |
|---|---|
| user_id | 客户 ID |
| room_id | 房间号 |
| room_type | 房间类型 |
| days | 连续入住天数 |
数据样例
| room_idPKBIGINT | room_typeVARCHAR(50) | room_priceDECIMAL(10, 2) |
|---|---|---|
| 1001 | 商务标准房 | 165 |
| 1002 | 家庭套房 | 376 |
| 1003 | 商务单人房 | 100 |
| 1004 | 商务单人房 | 100 |
| 1005 | 商务标准房 | 165 |
| 1006 | 商务单人房 | 100 |
| 1007 | 商务标准房 | 165 |
| 1008 | 家庭套房 | 365 |
输入数据显示 8 / 9 行
SQL 编辑器正在保存草稿...
Ctrl + Enter 运行
正在加载 SQL 编辑器...
运行你的 SQL 查询后,结果将显示在这里