SQL涉及两列的MAX和Group BY
SQL involving MAX of two colums and Group BY
所以...我得到了这样的 table:
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
而且我需要 select 每个组的较大年份的较大数字。所以我希望这个例子的结果是:
3 1 1 2001
8 2 3 2001
有什么想法吗?
OBS:使用 Postgres
如果您只想获取某些行,可以使用DISTINCT
。如果你想在同一行上使用不同的最大值,你可以使用 GROUP BY
SELECT DISTINCT ON ("group") * FROM tbl
ORDER BY "group", year DESC, id DESC;
SELECT *
FROM (
SELECT *,
row_number() over (partition by "group" order by "year" desc, "number" desc ) x
FROM table1
) x
WHERE x = 1;
所以...我得到了这样的 table:
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
而且我需要 select 每个组的较大年份的较大数字。所以我希望这个例子的结果是:
3 1 1 2001
8 2 3 2001
有什么想法吗? OBS:使用 Postgres
如果您只想获取某些行,可以使用DISTINCT
。如果你想在同一行上使用不同的最大值,你可以使用 GROUP BY
SELECT DISTINCT ON ("group") * FROM tbl
ORDER BY "group", year DESC, id DESC;
SELECT *
FROM (
SELECT *,
row_number() over (partition by "group" order by "year" desc, "number" desc ) x
FROM table1
) x
WHERE x = 1;