sql - [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
不确定高级分组或如何处理它。任何帮助是极大的赞赏。
解决方案
您可以在中使用窗口函数order by
:
select t.*
from t
order by max(date) over (partition by parent_id),
parent_id,
date desc;
推荐阅读
- c++ - OpenCV:如何在不超载内存的情况下在图像中找到坐标?
- angular - 为什么我会在 Angular 中收到此模板解析错误
- c - 使用队列的级别顺序二叉树遍历
- python - 使用 requests 和 BeautifulSoup 解析 leetcode 问题内容
- c++ - C++;从 std::basic_istream<> 镜像并通过?
- c++ - 使用特定约束对二维数组进行排序
- sql - 根据表 B 中的内部或左连接选择数据
- javascript - 获取正在发表评论的用户的姓名和图像
- reactjs - Flux Utils TypeError:没有'new'就不能调用类构造函数App
- r - 使用 html_notebook (R-markdown) 进行低质量图形渲染