所以我有一个名为城市的表,其属性路径(可以有重复或更多相等的条目)、名称和公里数,我需要对其进行过滤,以便我有条目,每个条目只有一个条目,用于具有最高公里数的路径。我现在拥有的是
SELECT cities.*
FROM cities, categories
group by cities.path , cities.kms
ORDER BY cities.kms desc
问题是它给了我重复的路径条目(我不想要),而且它也没有像我想要的那样按公里排序。我应该怎么办?
我认为您的查询中的表格没有任何用途categories
,因此我在回答中将其删除。
SELECT c1.path, c1.name, c1.kms
FROM cities c1
INNER JOIN (SELECT c2.path, MAX(c2.kms) AS Maxkms
FROM cities c2
GROUP BY c2.path) q
ON c1.path = q.path
AND c1.kms = q.Maxkms
GROUP BY path
只有MAX(kms)
:
SELECT cities.path, MAX(cities.kms)
FROM cities
GROUP BY cities.path
ORDER BY cities.kms desc
ORDER BY
应该按顺序排序kms
,除非它不是数字类型,否则可能是字符串。确保其类型。