【发布时间】:2018-05-08 23:57:58
【问题描述】:
对不起,如果我的标题有点混乱,我不知道如何措辞。
我有一张代表巴士时刻表的表格。它对每次旅行的每个站点都有一个条目,以及到达和离开时间以及站点的顺序。例如:
Trip_ID Arrival Departure Stop_ID Stop_Seq
Trip1 06:00:00 06:00:30 465 1
Trip1 06:03:45 06:04:15 474 2
...
Trip1 06:53:15 06:53:45 169 27
Trip1 06:56:30 06:57:00 311 28
Trip2 07:02:00 07:02:30 534 1
Trip2 07:03:45 07:04:15 700 2
...
Trip2 07:41:50 07:42:20 164 35
Trip2 07:45:30 07:46:00 311 36
我的目标是编写一个查询,该查询将为每个独特的行程返回两个结果,即 Stop_Seq 最低的记录和 Stop_Seq 最高的记录(每次行程)。 例如:
Trip_ID Arrival Departure Stop_ID Stop_Seq
Trip1 06:00:00 06:00:30 465 1
Trip1 06:56:30 06:57:00 311 28
Trip2 07:02:00 07:02:30 534 1
Trip2 07:45:30 07:46:00 311 36
我尝试过执行以下操作,但我不太了解 Group By 逻辑。
SELECT trip_id,arrival,departure,stop_id,MIN(stop_seq),MAX(stop_seq)
FROM stop_times
GROUP BY trip_id;
不幸的是,我没有按时间分组并停止,这让我感到不安,但这行不通,我不想要所有时间,只想要第一个和最后一个。
您能提供的任何帮助将不胜感激! :)
【问题讨论】: