【发布时间】:2021-06-02 21:41:48
【问题描述】:
我有一个表student,其标识列name 类型为TEXT。我正在寻找一个查询,该查询确定性地为每组唯一名称输出一个递增的 id。例如:
------+----------
name | group_id
------+----------
A | 1
A | 1
B | 2
C | 3
D | 4
D | 4
D | 4
我查看了 PSQL(当前运行 PostgreSQL 13.2)中的窗口函数,但没有运气。感觉做起来很简单,但就是想不通。
【问题讨论】:
-
看起来像 ROW_NUMBER()OVER(PARTITION BY NAME ORDER BY NAME DESC)AS GROUP_ID
-
不幸的是,ROW_NUMBER() 函数为每个分区的第一行分配一个,并为同一分区中的每一行增加一个。我正在寻找的是为第一个分区中的每一行分配一个,然后为每个分区增加一个。
标签: sql postgresql