使用postgres重复记录

时间:2013-07-16 22:30:43

标签: sql perl postgresql

大家好,我正在使用postgres来获得结果对,但我得到了重复的记录。 我得到的东西是:

stop_name|departure_time
------------------------
AAA      | 16489646
BBB      | 16465464
AAA      | 46546665
AAA      | 18421654
BBB      | 16849685
AAA      | 56496865

我期待的是:

stop_name|departure_time
------------------------
AAA      | 16489646
BBB      | 16465464

因为有点复杂,我做了一个小提琴HERE,你可以看到模式的样本和我使用的查询。有人可以帮助达到预期的效果吗?感谢。

1 个答案:

答案 0 :(得分:3)

我认为你只需要使用MIN聚合:

SELECT s.stop_name, min(st.departure_time) departure_time
  FROM stops s
    INNER JOIN stop_times st
      ON s.stop_id = st.stop_id
    INNER JOIN (
      SELECT DISTINCT t.trip_id, t.route_id
        FROM trips t, northbound nb
        WHERE t.trip_id LIKE CONCAT(nb.train_id,'%')
        AND t.route_id = '2'
    ) TR
      ON TR.trip_id = st.trip_id
WHERE st.departure_time > 1373948273
GROUP BY s.stop_name