我是sql查询的新手,有一个案例我无法处理。假设我有一张如下所示的表格;
id | document_name | country | major_version | minor_version |
1 | policy1 | DE | 1 | 0 |
2 | policy2 | DE | 1 | 0 |
3 | policy1 | DE | 1 | 1 |
4 | policy1 | DE | 2 | 0 |
5 | policy2 | DE | 1 | 1 |
6 | policy2 | IT | 1 | 0 |
7 | policy2 | IT | 1 | 1 |
我只想回来;
id | document_name | country | major_version | minor_version |
4 | policy1 | DE | 2 | 0 |
5 | policy2 | DE | 1 | 1
|
国家/地区为"DE"的文件的最新版本。我应该运行什么类型的查询?
我尝试distinct on document_name
,但它没有返回最新版本的文档。
我尝试
distinct on document_name
,但它没有返回最新版本的文档。
distinct on
在Postgres中是一个很好的方法,如果您使用正确的order by
子句:
select distinct on (document_name) t.*
from mytable t
order by document_name, major_version desc, minor_version desc