我想计算每个驾驶员在每个状态上花费的时间。我已经计算了时间差,但它存储在错误的单元格中,对应错误的驾驶员。请查看数据和我到目前为止的方法。提前感谢
我的数据
| 标识符|驱动程序标识|状态|进入时间|
| - -|- -|- -|- -|
| 一个|二百个|离线|2022年7月27日20时49分|
| 2个|二百个|可用|2022年7月27日20时53分|
| 三个|二百个|交付时|2022年7月27日20时55分|
| 四个|二百个|离线|2022年7月27日20时57分|
| 五个|二百零一|离线|2022年7月27日20时33分|
| 六个|二百零一|可用|2022年7月27日20时36分|
| 七个|二百零一|交付时|2022年7月27日20时39分|
| 八个|二百零一|离线|2022年7月27日20时44分|
我要的输出
| 标识符|驱动程序标识|状态|进入时间|输出(所用时间(分钟))|
| - -|- -|- -|- -|- -|
| 一个|二百个|离线|2022年7月27日20时49分|四个|
| 2个|二百个|可用|2022年7月27日20时53分|2个|
| 三个|二百个|交付时|2022年7月27日20时55分|2个|
| 四个|二百个|离线|2022年7月27日20时57分|- -|
| 五个|二百零一|离线|2022年7月27日20时33分|三个|
| 六个|二百零一|可用|2022年7月27日20时36分|三个|
| 七个|二百零一|交付时|2022年7月27日20时39分|五个|
| 八个|二百零一|离线|2022年7月27日20时44分|- -|
select
id,
driver_id,
driver_status,
driver_status.entry_time as cur_time,
LEAD(driver_status.entry_time) over (order by driver_status.id) as next_time,
DATEDIFF(minute,driver_status.entry_time,lead(driver_status.entry_time) over (order by id)) as timespent in minutes
from driver_status;
1条答案
按热度按时间baubqpgj1#
您对
LEAD()
分析函数的调用需要一个PARTITION
子句: