Ich habe eine große Datenbank mit Verbindungen zwischen den Städten. Jede Verbindung hat eine Start- und Zielstadt, ein Startdatum und einen Preis für diese Verbindung.Wie werden Permutationen mit postgresql berechnet?
Ich würde gerne alle Kombinationen von ausgehenden + Return-Verbindungen, für alle Verbindungen und für Daten, bei denen die Rückkehr Verbindung zwischen 1-20 Tagen ist, berechnen. Wählen Sie dann den besten Preis für jede Datumskombination aus.
Beispiel:
Tabelle:
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
Wunschergebnis:
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)
Ich kann die möglichen Kombinationen von erhalten:
SELECT DISTINCT city_start, city_end, city_end, city_start from table
Aber wie kann ich jetzt berechnen ihre Permutation ns?
Großartig, das scheint im Allgemeinen zu funktionieren. Gibt es eine Alternative zum Partitionsteil row_number? (Weil die Leistung von windowAggr ziemlich schlecht ist)? – membersound