我知道標題的措辭很差,但我想不出有更好的方式說出來。SELECT DISTINCT +來自兩列的匹配值=「唯一」
我在學Ruby並在MySQL上刷新。我使用一份完整航班的歷史清單作爲練習數據集,約有100,000行可供使用。每個航班記錄包括起點和目的地機場(字段'起源'和'dest')以及總飛行距離(字段'距離')。
作爲一個練習,我想顯示按距離降序排列的10條最長的路線。但是,我想將每對端點視爲一條路線,而不管哪個是起點,哪個是目的地。因此,例如JFK-LAX和LAX-JFK應被視爲單一路線。
當我運行查詢:
SELECT DISTINCT distance, origin, dest FROM flights ORDER BY distance DESC LIMIT 10;
當然
我得到這個:
["2704", "BOS", "SFO"]
["2704", "SFO", "BOS"]
["2689", "BOS", "SJC"]
["2689", "SJC", "BOS"]
["2615", "LAX", "LIH"]
["2615", "LIH", "LAX"]
["2614", "HNL", "SAN"]
["2614", "SAN", "HNL"]
["2611", "BOS", "LAX"]
["2611", "LAX", "BOS"]
這不是我想要的。我想說,「無論機場是出發地還是目的地,選擇10條最長航線的距離和終點。」
我想到的是按字母順序排序每對端點,並將它們連接在一起以創建唯一路線,例如LAX和JFK =「JFKLAX」。但我不知道如何做到這一點,並將其傳遞給我的原始查詢,或者即使這是最好的方式來解決這個問題。
這可以純粹在SQL/MySQL中完成嗎?
這會以可接受的性能返回我想要的結果集。謝謝。 –