제목이 잘못 표현 된 것을 알고 있지만 더 좋은 방법을 생각할 수 없습니다.SELECT DISTINCT + 두 열의 일치 값 = "고유"
저는 Ruby를 배우고 MySQL을 새로 고칩니다. 저는 약 10 만 개의 행을 가지고 연습 데이터 세트로 완성 된 비행의 역사적인 목록을 사용하고 있습니다. 각 비행 기록에는 출발지 및 도착지 공항 (출발지 및 출발지)과 총 비행 거리 (필드 '거리')가 포함됩니다.
연습으로 거리가 먼 거리로 정렬 된 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로 수행 할 수 있습니까?
허용되는 성능으로 원하는 결과 세트를 반환합니다. 감사. –