PostgreSQL select max with group by 和附加值

Mat*_*att 4 sql postgresql group-by

使用以下数据from a SELECT * FROM (SELECT...) AS foo

ID    Country   Area
1     US        100
1     UK        200
2     AU        150
2     NZ        250
Run Code Online (Sandbox Code Playgroud)

你如何选择最热门的地区和国家ID?因此GROUP BY IDMAX(DESC)但也包括County.

查询的结果将是:

1     UK     200
2     NZ     250
Run Code Online (Sandbox Code Playgroud)

Erw*_*ter 8

SELECT DISTINCT ON (ID)
       ID, Country, Area
FROM   foo
ORDER  BY ID, Area DESC NULLS LAST;
Run Code Online (Sandbox Code Playgroud)

特殊情况下更快的替代方案的详细说明和链接: