【携程】查询单日多次下单的会员用户
JOIN 连接聚合函数GROUP BY日期函数HAVINGORDER BY用户行为分析面试真题
题目描述
来源:携程 SQL 面试真题
某公司需要结合订单数据和会员等级数据,查询同一天内多次下单的用户信息。
数据表
order_tb 订单信息表
| 字段 | 类型 | 说明 |
|---|---|---|
| order_id | BIGINT | 订单 ID |
| user_id | BIGINT | 用户 ID |
| order_price | DECIMAL | 订单金额 |
| order_time | DATETIME | 订单创建时间 |
uservip_tb 会员等级信息表
| 字段 | 类型 | 说明 |
|---|---|---|
| user_id | BIGINT | 用户 ID |
| vip | VARCHAR | 会员等级 |
| point | INT | 会员积分 |
统计口径
- 单日多次下单是指同一用户在同一自然日的订单数大于 1。
- 同一用户在不同日期分别下单一次,不属于单日多次下单。
题目要求
- 输出订单日期、用户 ID、当日下单次数和会员等级。
- 按下单次数降序排列;次数相同时按订单日期升序、用户 ID 升序排列。
期望输出列
| 列名 | 说明 |
|---|---|
| order_date | 订单日期,格式 YYYY-MM-DD |
| user_id | 用户 ID |
| order_nums | 用户当日下单次数 |
| vip | 用户会员等级 |
数据样例
| 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 查询后,结果将显示在这里