我需要将UPDATE
PostgreSQL 表中的命令行(从子选择中选择)划分为组,这些组将在其列之一中用整数值标识。这些组应具有相同的大小。源表包含数十亿条记录。
例如,我需要将 213 个选定的行分组,每个组应包含 50 条记录。结果将是:
- 1 - 50. 行 => 1
- 51 - 100. 行 => 2
- 101 - 150. 行 => 3
- 151 - 200. 行 => 4
- 200 - 213. 行 => 5
使用一些循环(或使用 PostgreSQL 窗口函数)没有问题,但我需要非常高效和快速地完成它。我不能在 id 中使用序列,因为这些 id 中应该有间隙。
我有一个想法使用随机整数生成器并将其设置为一行的默认值。但这在我需要调整组大小时不可用。