如何在postgresql中获取组号?
How to get group number in postgresql?
我有一个用例,在 postgres 中使用 window 查询时,我想为每个分区分配一个唯一的递增分区号。
例如,我想得到这样的输出:
Partition Key | Row_Num() | Partition Number
Apple | 1 | 1
Apple | 2 | 1
Oranges | 1 | 2
Oranges | 2 | 2
Pear | 1 | 3
Pear | 2 | 3
基本上,除了在每个 "window" 中为我们提供唯一值的 row_num() 之外,我希望每个 "window" 都有一个唯一的数字
我如何实现这一目标? postgres 中是否有任何内置函数?
您似乎想要:
select partitionkey,
row_number() over (partition by partitionkey order by partitionkey) as row_num,
dense_rank() over (order by partitionkey) as partition_number
from t;
您正在寻找dense_rank()
. . .
dense_rank() over (order by PartitionKey) as number
我有一个用例,在 postgres 中使用 window 查询时,我想为每个分区分配一个唯一的递增分区号。
例如,我想得到这样的输出:
Partition Key | Row_Num() | Partition Number
Apple | 1 | 1
Apple | 2 | 1
Oranges | 1 | 2
Oranges | 2 | 2
Pear | 1 | 3
Pear | 2 | 3
基本上,除了在每个 "window" 中为我们提供唯一值的 row_num() 之外,我希望每个 "window" 都有一个唯一的数字 我如何实现这一目标? postgres 中是否有任何内置函数?
您似乎想要:
select partitionkey,
row_number() over (partition by partitionkey order by partitionkey) as row_num,
dense_rank() over (order by partitionkey) as partition_number
from t;
您正在寻找dense_rank()
. . .
dense_rank() over (order by PartitionKey) as number