sql - 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。
谢谢你的回答
解决方案
您可以使用窗口函数:
order by row_number() over (partition by category order by category)
您可以为order by
. 例如,如果您想要随机排序:
order by row_number() over (partition by category order by random())
推荐阅读
- tfs - 如何从 AzureDevops 中的 TestPlan 运行自动化测试用例
- python-3.x - 在 Gensim 中找不到 Word2Vec 单词,但出现在 TensorFlow 嵌入投影仪上?
- node.js - 如何修复'错误:TypeError:保存用户时无法读取未定义'的属性'catch'
- google-apps-script - 为什么 onFormSubmit 有时会在用户提交测验后触发两次?
- mysql - Plesk 服务器关闭,MySQL 已删除
- sql-server - 查找数据库还原历史记录以及机器主机名/IP 地址
- daml - 在 DAML 中,如何在选择中获取 ContractId
- javascript - 在提交表单和使用快照检索数据后,防止在 Firebase 应用程序中重复邮件 ID 和 ph num 而无需身份验证
- python - 在 Python 中等待非阻塞用户输入时显示提示
- c - 将 Keras 模型转换为 C