首页 > 解决方案 > [SQL]ORACLE - 按具有相同 ID 的数据和行排序

问题描述

我有这个数据表:

ID parent_id 日期
1 1 2020 年 10 月 1 日
2 2 2020 年 9 月 1 日
3 2 2020 年 11 月 1 日
4 3 2020 年 5 月 1 日
5 2 2020 年 1 月 1 日

我如何对具有相同父 ID 的所有行进行分组并按日期排序?

我想要这个结果:

3 | 2 | 11/01/2020
2 | 2 | 09/01/2020
5 | 2 | 01/01/2020
1 | 1 | 10/01/2020
4 | 3 | 05/01/2020

不确定高级分组或如何处理它。任何帮助是极大的赞赏。

标签: sqloracle

解决方案


您可以在中使用窗口函数order by

select t.*
from t
order by max(date) over (partition by parent_id),
         parent_id,
         date desc;

推荐阅读