首页 > 解决方案 > 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

标签: sqlpostgresqlgreatest-n-per-group

解决方案


在 Postgres 中执行此操作的最佳方法是使用DISTINCT ON

SELECT DISTINCT ON (fkey) id, fkey, srno
FROM yourTable
ORDER BY fkey, srno DESC;

在此处输入图像描述

演示


推荐阅读