应用partition by 同一个订单内有多条路线请求的记录(trace_id),将同一个订单内的所有trace_id按时间戳(server_time)正序,第一条记录就是送驾首次的路线请求
时间: 2024-04-12 22:31:23 浏览: 58
SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)
以下是使用 PARTITION BY 子句来实现您的需求的 SQL 查询语句:
```sql
SELECT start_point
FROM (
SELECT start_point,
ROW_NUMBER() OVER (PARTITION BY order_id ORDER BY server_time) AS row_num
FROM international_capital.dwd_map_order_route_api_driver_capital_di
WHERE order_stage = 4
) subquery
WHERE row_num = 1;
```
在上述查询中,我们使用了 PARTITION BY 子句来按照 order_id 进行分组,并按照 server_time 正序排列。使用 ROW_NUMBER() 函数为每个分组中的记录分配一个行号。最后,我们筛选出行号为 1 的记录,即每个订单内按时间顺序的第一条路线请求,并获取对应的起点坐标。请将 "order_id" 替换为您实际的订单 ID 列名。
阅读全文