Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将计数/实例编号列添加到表中(SQL开发人员)_Sql_Oracle Sqldeveloper_Gtfs - Fatal编程技术网

将计数/实例编号列添加到表中(SQL开发人员)

将计数/实例编号列添加到表中(SQL开发人员),sql,oracle-sqldeveloper,gtfs,Sql,Oracle Sqldeveloper,Gtfs,我有一个表格,列有汽车id、停车位置、到达时间和离开时间。我想添加一列停止序列,它将从1开始,对于具有相同车号的每一行增加1,然后对于下一个车号(按车号订购时,到达时间)再次从1开始 应该是这样的: car_id stop_lcn arr_time leave_time stop_sequence A Home -- 0900 1 A Shop 1000 110

我有一个表格,列有汽车id停车位置到达时间离开时间。我想添加一列停止序列,它将从1开始,对于具有相同车号的每一行增加1,然后对于下一个车号(按车号订购时,到达时间)再次从1开始

应该是这样的:

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

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

只需使用分析函数即可:

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

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

为什么需要添加列?您可以将停止顺序计算为
row\u number()!我不知道这个问题。。。我仍然需要添加列,因为其他人需要一个需要“stop_sequence”列的过程的表。我会让其他人知道如何计算它,而不是添加列。它可以使数据本身没有意义。删除或插入现有组的行会使序列中断。只是想考虑一下。您可能有很好的理由来解释您正在做的事情,我只想指出在表上添加视图的可能性:
create view。。。从T
中选择车辆id、停止lcn、到达时间、离开时间、行号()作为停止顺序。现在程序可以使用视图了。谢谢@Lennart-我现在已经启动并运行了!