0

我有一张表,其中包含car_idstop_locationarrive_timeleave_time 列。我想添加一个列stop_sequence,它将从 1 开始,对于具有相同car_id的每一行递增 1 ,然后为下一个car_id再次从 1 开始(当按 car_id 排序时,到达时间)。

它应该如下所示:

car_id    stop_lcn    arr_time    leave_time    stop_sequence

A         Home        --          0900          1
A         Shop        1000        1100          2
A         Work        1130        1700          3
B         Home        --          --            1
C         Home        --          0900          1
C         School      0930        1600          2

如果有人能告诉我如何添加这个额外的专栏,我将非常感谢您的帮助!

4

1 回答 1

1

只需使用分析函数:

select c.*,
       row_number() over (partition by car_id order by leave_time) as stop_sequence
from cars c;

实际上,在写完这篇文章之后,我看到@Lennart 在评论中给出了这个答案。如果那个人回答了这个问题,我会删除这个答案。

于 2014-06-25T21:01:05.837 回答