postgresql中的bucket
有谁能告诉我如何在PostgreSQL中制作大小相等的存储桶吗。例如,我有ID:12345678910112131415 现在我想制作3个大小相等的存储桶,这样将有3个存储桶,每个存储桶包含5条记录,如下所示:postgresql中的bucket,sql,postgresql,bucket,Sql,Postgresql,Bucket,有谁能告诉我如何在PostgreSQL中制作大小相等的存储桶吗。例如,我有ID:12345678910112131415 现在我想制作3个大小相等的存储桶,这样将有3个存储桶,每个存储桶包含5条记录,如下所示: 我建议ntile(): 注意:如果磁贴的数量不除以记录的数量,则这些磁贴的大小将尽可能相等。我建议ntile(): 注意:如果磁贴的数量不除以记录的数量,则这些磁贴的大小将尽可能相等。谢谢您的回答。我尝试过这个方法,但是如果磁贴的数量不除以记录的数量,那么这个方法就不能提供相同大小的存储
我建议
ntile()
:
注意:如果磁贴的数量不除以记录的数量,则这些磁贴的大小将尽可能相等。我建议
ntile()
:
注意:如果磁贴的数量不除以记录的数量,则这些磁贴的大小将尽可能相等。谢谢您的回答。我尝试过这个方法,但是如果磁贴的数量不除以记录的数量,那么这个方法就不能提供相同大小的存储桶。我想要大小相等的桶,不管瓦片的数量是否除以记录的数量。@VijayKumarKhatri。在问题中,你没有解释桶的数量不等于行的数量,我找到了解决办法选择FLOOR((a.id-1)/5)+1作为bucket,a.cid,name from customer a order by bucket,cid'这将使每个bucket的id大小为5bucket@VijayKumarKhatri . . . 如果ID有间隙,这是不起作用的。是的,但是对于上面的问题,这很好。此解决方案是为顺序ID定制的。谢谢您的回答。我尝试过这个方法,但是如果磁贴的数量不除以记录的数量,那么这个方法就不能提供相同大小的存储桶。我想要大小相等的桶,不管瓦片的数量是否除以记录的数量。@VijayKumarKhatri。在问题中,你没有解释桶的数量不等于行的数量,我找到了解决办法选择FLOOR((a.id-1)/5)+1作为bucket,a.cid,name from customer a order by bucket,cid'这将使每个bucket的id大小为5bucket@VijayKumarKhatri . . . 如果ID有间隙,这是不起作用的。是的,但是对于上面的问题,这很好。此解决方案是为顺序ID定制的。
select t.*,
ntile(3) over (order by id) as bucket
from t;