2012-09-11 10 views
0

그래서 특성 경로 (중복되거나 더 많은 항목이있을 수 있음), 이름 및 kms가있는 도시라는 도시가 있는데이를 필터링하여 각 항목에 대해 하나의 항목 만 갖도록해야합니다. 가장 높은 kms를 가진 경로. 내가 지금 가지고있는 것은 (내가 원하는 해달라고 느릅 나무)와 내가 원하는처럼 또한 그것은 킬로미터에 의해 순서를 나던 문제는 경로 나에게 다시 중복 항목을 제공한다는 것입니다SQL 쿼리 또는 하위 쿼리

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

입니다. 어떻게해야합니까?

+1

출력을 추가하여 원하는 출력을 추가 할 수 있습니까? –

+0

테이블의 일부 샘프 데이터를 보여줘야합니다. –

답변

3

쿼리에 categories 테이블에 대한 용도가 없습니다. 따라서 대답에서 제거했습니다. 단지 MAX(kms)

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 
+0

감사합니다. – psychok7

1

GROUP BY path :이 문자열이 될 수 numeric 타입이 아닌 경우를 제외하고

SELECT cities.path, MAX(cities.kms) 
FROM cities 
GROUP BY cities.path 
ORDER BY cities.kms desc 

ORDER BY는, kms으로 주문해야합니다. 유형을 확인하십시오.