我有一个很大的表(约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。我想将每个组的行设置为随机...
您可以使用row_number()
: