我想获得两列(或两列)中出现的不同值。不是列的分组,而是各个值本身。
例如,使用ORIGIN和DESTINATION列查询航空旅行路线表。我想获得所有机场的清单,无论它是起点还是目的地。
SFO, LGA
SFO, LAX
JFK, LAX
JFK, SFO
LAX, SFO
LAX, LGA
应该返回
LAX, SFO, LGA, JFK
如果它有任何不同,我正在使用Postgres 9.6。
答案 0 :(得分:4)
只需使用union
:
select origin as airport
from routes
union -- used on purpose to remove duplicates
select destination
from routes;
答案 1 :(得分:0)
在写我的问题时,我设法解决了这个问题,但我不确定这是否是最理想的情况。
SELECT DISTINCT orig AS airport_code
FROM (
SELECT origin FROM airport_routes
UNION ALL
SELECT destination FROM airport_routes
);
答案 2 :(得分:0)
研究在两列上使用聚合函数(<,>)