Mysql SQL在多列中按值对分组并消除相同的元组

Mysql SQL在多列中按值对分组并消除相同的元组,mysql,sql,duplicates,Mysql,Sql,Duplicates,我有一个包含航班的数据库表。(始发地/目的地在IATA机场代码中。) 我试图找出两个机场之间的航班数量,而不考虑航班的方向。所以我在寻找这个结果: origin destination count AMS BON 2 EIN GDN 3 AMS AGP 1 到目前为止,我的问题是: SELECT c.origin, c.destination, count(c.origin) as

我有一个包含航班的数据库表。(始发地/目的地在IATA机场代码中。)

我试图找出两个机场之间的航班数量,而不考虑航班的方向。所以我在寻找这个结果:

origin    destination    count
AMS       BON            2
EIN       GDN            3
AMS       AGP            1
到目前为止,我的问题是:

SELECT c.origin, c.destination, count(c.origin) as count FROM 
(
SELECT a.origin as origin, a.destination as destination FROM Flights a 
UNION ALL SELECT b.destination as origin, b.origin as destination FROM Flights b 
) c 
GROUP BY origin, destination;
结果如下:

origin    destination    count
AMS       BON            2
BON       AMS            2
EIN       GDN            3
GDN       EIN            3
AMS       AGP            1
所以问题是存在重复的元组。如何消除这些问题

这似乎与这个问题相似,但恐怕还不够相似。
一个更简单的方法是使用
least()
grest()


更简单的方法是使用
least()
grest()


谢谢纯粹的才华!谢谢纯粹的才华!
origin    destination    count
AMS       BON            2
BON       AMS            2
EIN       GDN            3
GDN       EIN            3
AMS       AGP            1
SELECT least(origin, destination) as city1,
       greatest(origin, destination) as city2, count(*) as cnt
FROM Flights f
GROUP BY least(origin, destination), greatest(origin, destination)