PostgreSQL选择最大值与分组依据和附加值[重复]
Posted
技术标签:
【中文标题】PostgreSQL选择最大值与分组依据和附加值[重复]【英文标题】:PostgreSQL select max with group by and additional value [duplicate] 【发布时间】:2015-08-01 20:44:02 【问题描述】:有以下数据from a SELECT * FROM (SELECT...) AS foo
:
ID Country Area
1 US 100
1 UK 200
2 AU 150
2 NZ 250
如何通过ID
选择排名靠前的地区和国家?所以GROUP BY ID
和MAX(DESC)
还包括County
。
查询的结果是:
1 UK 200
2 NZ 250
【问题讨论】:
【参考方案1】:SELECT DISTINCT ON (ID)
ID, Country, Area
FROM foo
ORDER BY ID, Area DESC NULLS LAST;
详细解释和特殊情况下更快替代方案的链接:
Select first row in each GROUP BY group?【讨论】:
【参考方案2】:试试这个
select ID,Country,Area
from (SELECT...) AS foo
WHERE Area = (SELECT MAX(Area)
FROM (SELECT...) AS foo2
WHERE foo.ID = foo2.ID )
【讨论】:
感谢您的回复。 Erwin Brandstetters 解决方案使得无需运行 (SELECT.. 两次) 就可以做到这一点。 @Matt true 他的回答更好!以上是关于PostgreSQL选择最大值与分组依据和附加值[重复]的主要内容,如果未能解决你的问题,请参考以下文章