1

みなさん、こんにちは 私は 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を作成しました。期待される結果を達成するために誰かが手を差し伸べることができますか? ありがとう。

4

1 に答える 1

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 
于 2013-07-16T22:34:33.060 に答える