是否有一种方法可以仅使用SQL将表中的行改编为不同的固定大小的块?

问题描述 投票:1回答:1

我有一个很大的表(约3亿行),结构如下:my_table(id,group,chunk,new_id),其中chunk和new_id设置为NULL。

我想将每个组的行设置为一个随机块,块中具有不同的new_id。每个块的大小应固定为100。

例如,如果A组有1278行,则应将它们分为13个块(0-12),即12个块,每行100个。 new_id的范围是(0-99),并且是另一个具有78行s.t的单个块。 new_id的范围是(0-77)。

组织为大块并且在大块内的组织应该是随机排列,其中A中的每一行都分配有唯一的(大块,new_id)元组。

我已经成功地使用了熊猫,但是要花几个小时,主要是由于内存和带宽的限制。

是否可以仅使用SQL查询执行?我正在使用postgres 9.6。

我有一个很大的表(约3亿行),具有以下结构:my_table(id,group,chunk,new_id),其中chunk和new_id设置为NULL。我想将每个组的行设置为随机...

sql postgresql random permutation chunks
1个回答
1
投票

您可以使用row_number()

© www.soinside.com 2019 - 2024. All rights reserved.