sql - postgresql 选择不同的最新记录
问题描述
我有一张像这样的桌子:
id fkey srno remark date
1 A001 1
2 A001 2
3 A002 1
4 A003 1
5 A002 2
我想要基于 max srno 的不同的最新记录,例如
2 A001 2
4 A003 1
5 A002 2
解决方案
在 Postgres 中执行此操作的最佳方法是使用DISTINCT ON
:
SELECT DISTINCT ON (fkey) id, fkey, srno
FROM yourTable
ORDER BY fkey, srno DESC;
演示
推荐阅读
- c# - 如何在检查器中隐藏继承的公共变量?
- angular - 如何在 Visual Studio Code 中调试 Angular 多项目工作区
- spring - 如何使用 spring boot kotlin intellij 启用自动构建和自动重启
- fullcalendar - 具有不同持续时间的可拖动事件应与日历中显示的大小相同
- uwp - 从 C++ AMP 而不是 TYPELESS 获取 FLOAT 纹理
- postgresql - 在 PostgreSQL 中使用 int4range 类型进行快速最近邻匹配
- html - 在左上角显示文本,在 textarea 之前
- swift - 在 iOS 13 中使用 navigationItem.searchController 时 UINavigationBar 变白并且不会关闭
- c - Lua和C有什么关系?
- flutter - Make a Flutter alertdialog when the app open