选择具有最大值的行,与其他两列相关

Selecting rows with max value, in correlation to two other columns

我有一个包含三列的 table:区域、国家/地区、计数。 我想将我的 table 减少到区域、国家和计数的行 - 其中计数在该区域中最大。

例如,如果我有以下 table:

region | country | count
asia   | jo      | 12
asia   | ir      | 12
asia   | il      | 10  
europe | fr      |  8
europe | it      |  2

我希望进入 return:

region | country | count
asia   | jo      | 12
asia   | ir      | 12
europe | fr      |  8

可以这样实现:首先需要按region字段对数据进行分组,取最大值。然后使用字段 regioncount

执行一个简单的 IN 条件
select * from my_table WHERE (region, count) in (select region, MAX(count) from my_table  GROUP BY region)

演示在 DBfiddle