我的表包含类似于以下内容的数据。我需要的查询将导致具有最高cityID值的Orange和Apple的最高结果。
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
答案 0 :(得分: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 :(得分:1)
可以帮助您的最短代码。
SELECT fruit_id,fruit,attr,max(cityID),personID FROM `fruits_cities` GROUP BY fruit ORDER BY fruit_id