SQL进阶技巧:如何查询最近一笔有效订单? | 近距离有效匹配问题
目录
0 场景描述【美团金融面试题】
1 数据准备
2 问题分析
方法1:分析函数求解
方法2:通过一对多关联获取全量数据集求解
方法3:last_value() 忽略NULL值特性+窗口子句【优雅实现】
3 小结
0 场景描述【美团金融面试题】
现有订单表t5_order,包含订单ID,订单时间,下单用户,当前订单是否有效
+---------+----------------------+----------+-----------+
| ord_id | ord_time | user_id | is_valid |
+---------+----------------------+----------+-----------+
| 1 | 2023-12-11 12:01:03 | a | 1 |
| 2 | 2023-12-11 12:02:06 | a | 0 |
| 3 | 2023-12-11 12:03:15 | a | 0 |
| 4 | 2023-12-11 12:04:20 | a | 1 |
| 5 | 2023-12-11 12:05:03 | a | 1 |
| 6 | 2023-12-11 12:01:02 | b | 1 |
| 7 | 2