SQL。用于聚合某些相关字段的查询
很抱歉标题含糊不清,我不知道该怎么说 假设您有一个表,例如列车上的下一个停车位表以及此站与下一站之间的距离:SQL。用于聚合某些相关字段的查询,sql,Sql,很抱歉标题含糊不清,我不知道该怎么说 假设您有一个表,例如列车上的下一个停车位表以及此站与下一站之间的距离: Stop NextStop Distance ------------------------------------ Middletown Bloomsbury 101 Bloomsbury Shanksville 36 Shanksville New City 53 New City Washington
Stop NextStop Distance
------------------------------------
Middletown Bloomsbury 101
Bloomsbury Shanksville 36
Shanksville New City 53
New City Washington 339
Washington Andover 48
问题是确定站点X和Y之间的距离。例如,米德尔顿和尚克斯维尔之间的距离为101+36=137
有没有一种方法可以通过一个查询来实现这一点?(理想情况下,我正在寻找一种迭代遍历Stops列的方法,方法是使用前一行的NextStop字段作为下一行的键,然后将它们的距离收集到一列中。)
谢谢 在Oracle中,我认为类似的方法可能会奏效:
Select sum(distance)
from train_stops
start with stop = 'Middletown'
connect by stop = prior nextstop;
谢谢你知道有没有通用的SQL解决方案吗?@Jake:不知道。您使用的是什么数据库管理系统?Oracle并不是唯一一个支持递归查询的工具,但不同的工具的语法可能略有不同。我并不局限于特定的实现。我的意思是,我试图解决这个问题,但对每个距离段进行多个查询似乎有些过分。也许我的单一查询方法是不正确的。@Jake:有关一般解决方案,请参见此处Portman的答案: