【发布时间】:2019-07-16 00:04:13
【问题描述】:
首先,我要感谢您的帮助!我目前正在研究英国铁路提供的数据;我拥有的数据目前包含在 PostgreSQL 的关系数据库中。我的最终目标是提取铁路网络服务的起点-目的地对。
目前,条目存储在行中,每行包含火车旅程中的一个站点/位置。例如,如果一列火车从 D 经 E 和 F 行驶到 G,则 D 将被包含在一行中并标记为 origin_location,E 和 F 为 middle_location,G 为 terminating_location。他们每个人还将标有其他详细信息,例如火车 ID、出发/通过/到达时间和旅行日期。
最终,我希望从这些条目中编写一个查询,为我提供所有可能的起点-终点对。因此,例如,继续上面的示例,我希望查询生成一个表,该表给我这样的行:D-E; D-F; D-G; E-F;例如; F-G。这些位置之间的联系是基于它们共享一个公共火车标识符,该标识符位于另一列“Y 列”中。
我刚刚开始研究,但我不希望您帮我找到特定的代码作为解决方案。相反,我只是希望你能指出我可以阅读使用哪些功能的方向,我们会看看它从那里开始。
有人尝试使用相同的数据集,尽管构建此函数的目的略有不同 - 即获取在特定日期运行的所有列车的完整时间表(每个列车的出发/中间/终点位置为一排)。功能详解在这里:https://github.com/jhumphry/ukraildata_etl/blob/master/sql/mca_get_full_timetable.sql
【问题讨论】:
-
(1) 样本数据和期望的结果比解释段落更有帮助。 (2) 你想要的是递归 CTE。您可能应该就如何应用它们提出一个新的、特定于矿石的问题。
-
谢谢 Gordon - 我会尝试看看你的建议
标签: sql postgresql