2015-09-27 53 views
0

我有包含类似于以下数据的表。我需要的查询将导致桔子和苹果具有最高城市ID值的最佳结果。仅使用其他唯一列为特定记录选择最高值?

id | fruit | attr | cityID | personID 
163 Apple green 3685 235 
163 Apple red  3145 267 
163 Apple yellow 1522 560 
164 Orange big  1344 147 
164 Orange small 833  2673 

我需要将

id | fruit | attr | cityID | personID 
163 Apple green 3685 235 
164 Orange big  1344 147 

结果我开始尝试用

select 
    fruit_id, 
    fruit, 
    attr, 
    max(cityID), 
    personID 
from fruits_cities 
    group by 
    fruit_id, 
    fruit, 
    attr, 
    max(cityID), 
    personID 

回答

2

这是一个挑战,以实现这一目标。你需要使用某种比较。这是一个简单的方法:

select fc.* 
from fruits_cities fc 
where fc.cityId = (select max(CityId) 
        from fruits_cities fc2 
        where fc2.fruit_id = fc.fruit_id 
       ); 
1

最短的代码可能会帮助你。

SELECT fruit_id,fruit,attr,max(cityID),personID FROM `fruits_cities` GROUP BY fruit ORDER BY fruit_id 
相关问题