首页 > 解决方案 > sql中的自定义排序

问题描述

我有一个表,其中有一列名为 category。其中的数据是 1、2、3,所以每一行都有一个类别。

我需要像这样按类别对数据进行排序

1,2,3,1,2,3,1,2,3,....

然后如果某个类别完成排序继续这样

1,2,3,1,2,3,1,3,1,3,1,1,1,1,....

我正在使用 PostgreSQL。

谢谢你的回答

标签: sqlpostgresqlsorting

解决方案


您可以使用窗口函数:

order by row_number() over (partition by category order by category)

您可以为order by. 例如,如果您想要随机排序:

order by row_number() over (partition by category order by random())

推荐阅读