首页 > 解决方案 > 如何获取MySQL中带有相应属性的表的最大值

问题描述

example_table从嵌套查询中得到以下结果:

id    site_ref     area  
-------------------------------
91    Lake SW       0.23
91    Lake MP       3.89
93    Lake SW       0.56
93    Lake MP       0.05

我想获得最大面积id,并随身携带site_ref。我使用了以下 SQL:

select id,  site_ref, max(area) from example_table  GROUP BY id

我得到的是(错误的site_ref):

id    site_ref     area  
-------------------------------
91    Lake SW       0.56
93    Lake SW       3.89

我想要的是:

id    site_ref     area  
-------------------------------
91    Lake MP       3.89
93    Lake SW       0.56

标签: mysqlsqlmysql-5.7

解决方案


一种方法是相关子查询:

select et.*
from example_table et
where et.area = (select max(et2.area) from example_table et2 where et2.id = et.id);

推荐阅读