多个级联的Postgresql顺序?

Posted

技术标签:

【中文标题】多个级联的Postgresql顺序?【英文标题】:Postgresql Order By Multiple Cascading? 【发布时间】:2021-04-08 13:43:43 【问题描述】:

我希望这是一个快速的问题,但我无法弄清楚。有没有办法在 Postgres 中级联排序?例如说我有下表:

Name Staff_ID Attribute_ID
Horse null 1
Bird null 10
Cat 1 8
Dog 2 8
Cat 1 9
Dog 2 9

我可以让它返回,以便订单按attribute_id asc 排序,然后当它看到订单中有多个条目并将空值放在第一位时按staffid 排序?如:

编辑:在 cmets 中添加了这个

我想最终我想按 Attribute_ID 排序,直到它看到一个 staff_id asc 的多个条目,然后在返回 attribute_id 之前按 staff_id 排序

Name Staff_ID Attribute_ID
Horse null 1
Cat 1 8
Cat 1 9
Dog 2 8
Dog 2 9
Bird null 10

谢谢!

【问题讨论】:

描述很复杂,不确定我是否正确。不是按staff_id、Attribute_id 排序吗?哦不,我看到你介绍了一个不存在的价值。我不知道它会从哪里来。 嘿 Cetin 我刚刚更新了列表以使其更有意义和更正确?我想最终我想按 Attribute_ID 排序,直到它看到一个 staff_id asc 的多个条目,然后在返回 attribute_id 之前按 staff_id 排序 【参考方案1】:

如果我理解正确,您希望所有 names 都在一起,基于名称的最小属性 id。那将是:

order by min(attribute_id) over (partition by name),
         name,
         attribute_id;

【讨论】:

这行得通,我把它搞砸了。非常感谢!

以上是关于多个级联的Postgresql顺序?的主要内容,如果未能解决你的问题,请参考以下文章

mybatis 级联

如何在 PostgreSql 上使用 Jooq 级联截断?

关于级联的递归

Mybatis + mysql 实现两级级联的查询

Haar 级联的图像大小考虑

excel下拉级联 ,excel下拉级联的做法