Sql 如何在Postgres中为特定列中的相似数据值获取数字序列?

Sql 如何在Postgres中为特定列中的相似数据值获取数字序列?,sql,database,postgresql,group-by,grouping,Sql,Database,Postgresql,Group By,Grouping,我正在寻找一种有效的方法,在那里我可以按顺序为每个组分配数字 Record Group GroupSequence -------|---------|-------------- 1 Car 1 2 Car 2 3 Bike 1 4 Bus 1 5 Bus 2 6 Bus 3 我遇到了这个问题:。但我的用例与它略有不同。关于如何通过一个查询来

我正在寻找一种有效的方法,在那里我可以按顺序为每个组分配数字

Record  Group     GroupSequence
-------|---------|--------------
1       Car       1
2       Car       2
3       Bike      1
4       Bus       1
5       Bus       2
6       Bus       3

我遇到了这个问题:。但我的用例与它略有不同。关于如何通过一个查询来实现这一点,您有什么想法吗?

您正在寻找
行号()

你可以在需要的时候计算,所以我觉得没有理由存储它。但是,如果愿意,可以更新这些值:

update t
    set group_sequence = tt.new_group_sequence
    from (select t.*,
                 row_number() over (partition by group order by record) as new_group_sequence
          from t
         ) tt
    where tt.record = t.record;
update t
    set group_sequence = tt.new_group_sequence
    from (select t.*,
                 row_number() over (partition by group order by record) as new_group_sequence
          from t
         ) tt
    where tt.record = t.record;