Как сделать, чтобы пара столбцов выводилась только один раз? [PostgreSQL]

Например, имеем результат запроса:

departure_city | arrival_city
----------------+--------------
Москва | Екатеринбург
Екатеринбург | Москва

А нужно сделать, чтобы выводилось один раз Москва - Екатеринбург. Вот, какой запрос есть, DISTINCT не работает. Нужно как-то модифицировать его. Помогите плиз.

SELECT DISTINCT departure_city, arrival_city
FROM routes r
JOIN aircrafts a ON r.aircraft_code = a.aircraft_code
WHERE a.model = 'Боинг 737-300'
ORDER BY 1;

Ответы (1 шт):

Автор решения: Stormrage

Нашел решение своей задачи.

SELECT LEAST(departure_city, arrival_city), GREATEST(departure_city, arrival_city)
FROM routes r
JOIN aircrafts a ON r.aircraft_code = a.aircraft_code
WHERE a.model = 'Боинг 737-300'
GROUP BY 1,2
ORDER BY 1,2

С помощью функций LEAST и GREATEST мы сортируем города, чтобы разнести их по разным столбцам. После, с помощью GROUP BY группируем все города и откидываем лишние маршруты.

→ Ссылка