【发布时间】:2012-07-25 21:22:19
【问题描述】:
我有以下 SQL:
select code, distance from places;
输出如下:
CODE DISTANCE LOCATION
106 386.895834130068 New York, NY
80 2116.6747774121 Washington, DC
80 2117.61925131453 Alexandria, VA
106 2563.46708627407 Charlotte, NC
我希望能够只获得一个代码和最近的距离。所以我希望它返回这个:
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
如果我不想获得与最短距离相关的正确位置,则该最小值可以正常工作。我如何获得最小(距离)和正确的位置(取决于表中插入的顺序,有时您最终可能会得到纽约距离,但位置中的夏洛特)。
【问题讨论】:
-
提前告诉 DBMS 会很好......
-
克里斯,为什么你对每个答案下的表现如此好奇?您不会执行一次建议的查询并缓冲结果以获得简单的
code 1:1 closest location关系吗?就我而言,代码和位置之间的距离不会经常变化......