-1

我在 MySQL DB 中有以下 SQL:

select code, distance from locations;    

输出如下:

CODE    DISTANCE            LOCATION
106     386.895834130068    New York, NY
80      2116.6747774121     Washington, DC
80      2117.61925131453    Alexandria, VA
106     2563.46708627407    Charlotte, NC
106     2030.5845606766     Atalanta, GA

我希望能够只获得一个代码和最近的距离。所以我希望它返回这个:

CODE    DISTANCE            LOCATION
106     386.895834130068    New York, NY
80      2116.6747774121     Washington, DC

我最初有这样的事情:

SELECT code, min(distance), location
GROUP BY code
HAVING distance > 0 
ORDER BY distance ASC
4

3 回答 3

0

SELECT code, distance, location FROM locations GROUP BY code HAVING distance > 0
ORDER BY distance ASC LIMIT 1

于 2012-07-27T10:35:18.517 回答
0
  SELECT code, min(distance), location
GROUP BY code,location
  HAVING distance =min(distance)
于 2012-07-27T08:31:42.740 回答
0

尝试这个:

select L.* from (
    SELECT code, min(distance) as min_distance 
    from places
    GROUP BY code)a
join places L
on L.CODE=a.CODE
and L.DISTANCE=a.min_distance 
于 2012-07-27T08:46:44.777 回答