选择具有最大值的行,与其他两列相关
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
字段对数据进行分组,取最大值。然后使用字段 region
和 count
执行一个简单的 IN
条件
select * from my_table WHERE (region, count) in (select region, MAX(count) from my_table GROUP BY region)
演示在 DBfiddle
我有一个包含三列的 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
字段对数据进行分组,取最大值。然后使用字段 region
和 count
IN
条件
select * from my_table WHERE (region, count) in (select region, MAX(count) from my_table GROUP BY region)
演示在 DBfiddle