0
我有一张充满公共汽车站的表格。每个站点具有line_id,方向和坐标(lat和lng)。使用GROUP BY和HAVING选择具有聚合函数的行
我想我的查询返回每条线/方向最近的站点。
SELECT * from stops GROUP BY CONCAT(line_id, direction)
该查询按预期对我的站点进行分组。这是另一部分这是tricker(返回最近的车站),因为我计算上使用飞的距离(我换成这里的一些变量)
SQRT(POW(111.1819*(45.54182-lat),2)+POW(64.7938007101048*(-73.62934-lng),2))
我试着做一个INNER JOIN,但没有运气(我已经取代了距离公式):
SELECT distance-formula as distance1, s1.* from stops s1 INNER JOIN
(SELECT MIN(distance-formula) AS distance2, line_id, direction FROM stops GROUP BY CONCAT(line_id, direction)) s2
ON (s1.line_id = s2.line_id AND s1.direction = s2.direction AND s1.distance1 = s2.distance2)
但我不断收到“接通条款”错误未知列“距离1”。
我已经研究过其他选项,但距离在查询内计算的事实似乎是一个真正的交易断路器。我有什么选择? 我需要我的查询尽可能快。
,首先询问的伎俩。好的呼叫sqrt,谢谢! – samvermette 2011-03-30 17:50:01