gpt4 book ai didi

sql - 带有 CASE 语句的特殊 ORDER BY - 需要指导

转载 作者:行者123 更新时间:2023-11-29 11:38:29 34 4
gpt4 key购买 nike

我正在考虑我需要如何编写这个查询。我认为这可能涉及在 ORDER BY 语句中包含一个 CASE,但我可以使用一些指导。

我有两列数据;身份和价格。当我按 Price ASC 排序时,我的查询结果显示如下:

ID | Price
3 | 150
1 | 200
3 | 205
2 | 210
2 | 230
3 | 270
1 | 300
2 | 340
3 | 500

我想要做的是仍然按 Price ASC 订购,但略有不同。我也想按 ID 分组。例如,我希望查询找到所有结果中的最低价格,然后找到具有相同 ID 的所有其他记录,按价格 ASC 顺序列出。找到该 ID 的所有记录后,查询将查看所有其他剩余记录,再次找到最低价格,然后重复。因此,每次经过此循环时,结果池都会减少。对于上面的示例,结果将是:

ID | Price
3 | 150
3 | 205
3 | 270
3 | 500
1 | 200
1 | 300
2 | 210
2 | 230
2 | 340

循环类似于查找最低价格,查找具有相同 ID 的所有记录并按价格顺序排列,查找剩余结果的最低价格,查找具有相同 ID 的所有记录并按价格顺序排列,重复....

有什么想法吗?如果我解释得不够好,请告诉我。

最佳答案

SELECT ID, PRICE
FROM t
ORDER BY MIN(PRICE) OVER (PARTITION BY ID), PRICE

SQL Fiddle

关于sql - 带有 CASE 语句的特殊 ORDER BY - 需要指导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15214051/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com