所以......我有一张这样的桌子:
id group number year
1 1 1 2000
2 1 2 2000
3 1 1 2001
4 2 1 2000
5 2 2 2000
6 2 1 2001
7 2 2 2001
8 2 3 2001
我需要为每个小组选择更大的年份。所以我希望这个例子的结果是:
3 1 1 2001
8 2 3 2001
任何想法? OBS:使用Postgres
答案 0 :(得分:2)
如果您想获得某些行,则可以使用DISTINCT
。如果您想在同一行上使用不同的最大值,可以使用GROUP BY
SELECT DISTINCT ON ("group") * FROM tbl
ORDER BY "group", year DESC, id DESC;
答案 1 :(得分:2)
SELECT *
FROM (
SELECT *,
row_number() over (partition by "group" order by "year" desc, "number" desc ) x
FROM table1
) x
WHERE x = 1;