0

所以我有一个名为城市的表,其属性路径(可以有重复或更多相等的条目)、名称和公里数,我需要对其进行过滤,以便我有条目,每个条目只有一个条目,用于具有最高公里数的路径。我现在拥有的是

SELECT cities.* 
FROM cities, categories 
group by cities.path , cities.kms 
ORDER BY cities.kms desc

问题是它给了我重复的路径条目(我不想要),而且它也没有像我想要的那样按公里排序。我应该怎么办?

4

2 回答 2

3

我认为您的查询中的表格没有任何用途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
于 2012-09-11T14:51:32.547 回答
1

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,除非它不是数字类型,否则可能是字符串。确保其类型。

于 2012-09-11T14:51:55.370 回答