我有一张桌子,其中包含不同汽车的所有旅行。我已将此表筛选为专门有多个停靠站的行程。现在我要做的就是让每辆车都停下来。
我所拥有的是:
Car ID
Date_depart
Date_arrive
Count (from a previous table creation)
我通过使用“汽车ID +日期出发”并计算单个date_depart中有多个date_arrives的地方来过滤此表。现在,我试图弄清楚如何只回到第一站,却完全陷入困境。在做横向连接X之外,以Z极限1等方法排序;我不知道如何只获取此表中的第一个结果。
以下是一些示例数据:
Car ID Date_depart Date_arrive Count
949 2017-01-01 2017-01-05 2
949 2017-01-01 2017-01-09 2
1940 2017-01-09 2017-01-11 3
1940 2017-01-09 2017-01-14 3
1940 2017-01-09 2017-01-28 3
949 2018-04-19 2018-04-23 2
949 2018-04-19 2018-04-26 2
,预期结果将是:
Car ID Date_depart Date_arrive Count
949 2017-01-01 2017-01-05 2
1940 2017-01-09 2017-01-11 3
949 2018-04-19 2018-04-23 2
有帮助吗?
答案 0 :(得分:0)
您需要DISTINCT ON
SELECT DISTINCT ON (date_depart, car_id)
*
FROM
trips
ORDER BY date_depart, car_id, date_arrive
这将为您提供每个组(date_depart, car_id)
的第一行(有序)