Sql 如何在Oracle中对varchar类型的列进行分组?

Sql 如何在Oracle中对varchar类型的列进行分组?,sql,oracle,plsql,Sql,Oracle,Plsql,我有以下资料: 我想根据车辆编号和分区,将具有我的排名1的行与对应的我的排名2相结合,因此我不知道如何对数据进行分组,因为我的排名=1行中的退出列有空值,我的排名=2行中的进入列有空值 最后,我应该有如下数据: 请引导。我想您需要: select vehicle_no, division, max(entry_station) as entry_station, max(entry_event) as entry_event, max(entry_leg

我有以下资料:

我想根据车辆编号和分区,将具有我的排名1的行与对应的我的排名2相结合,因此我不知道如何对数据进行分组,因为我的排名=1行中的退出列有空值,我的排名=2行中的进入列有空值

最后,我应该有如下数据:


请引导。

我想您需要:

select vehicle_no, division,
       max(entry_station) as entry_station,
       max(entry_event) as entry_event,
       max(entry_leg_no) as entry_leg_no,
       max(exit_station) as exit_station,
       max(exit_event) as exit_event,
       max(exit_leg_no) as exit_leg_no
from t
group by vehicle_no, division

在列上使用MAX和GROUP BY。如何处理需要输出两次的SDF除法,因为如果我们分组到,则只有1行对应于it@radha . . . SQL表表示无序集。您的结果似乎取决于行的顺序。因此,无法使用您提供的数据进行此操作。也许还有另一列有排序信息。先生,没错,但没有这样的列,这就是我被卡住的原因,或者我必须更改排序,使前2行的排名为1,第3行和第4行的排名为2,第5行和第6行的排名为3,然后我可以简单地在分组中添加排名列,这个方法是rght吗?对于除法SDF,我想要两行,但是按照你的逻辑,我只得到一行