私は都市間の接続を持つ大きなデータベースを持っています。各接続には、開始と終了の町、開始日、およびその接続の価格があります。postgresqlで順列を計算するには?
私は、任意の接続と、戻り接続が1〜20日の日付の任意の組み合わせを計算したいと思います。次に、それぞれの日付の組み合わせの最適な価格を選択します。
例:
表:
city_start, city_end, date_start, price
Hamburg Berlin 01.01.2016 100.00
Berlin Hamburg 10.01.2016 112.00
Berlin Hamburg 10.01.2016 70.00
Berlin Hamburg 12.01.2016 50.00
Berlin Hamburg 30.02.2016 20.00
Paris Madrid ...
Madrid Paris
London Paris
望ましい結果:
Hamburg-Berlin-Hamburg, 01.01.2016, 10.01.2016, 170.00 (100+70)
Hamburg-Berlin-Hamburg, 01.01.2016, 12.01.2016, 150.00 (100+50)
...
(not Berlin-Hamburg on 30.02.2016 because it's >20 days from departure drive)
(not London-Paris, as there is no return Paris-London)
私がで可能な組み合わせを得ることができます。
SELECT DISTINCT city_start, city_end, city_end, city_start from table
しかし、私は今、どのように計算することができます彼らの順守ns?すべてのペアを取得する
偉大な、それは一般的に動作するようです。 row_numberパーティション部分に代わる方法はありますか? (なぜならwindowAggr関数のパフォーマンスはかなり悪いからです)。 – membersound