У меня есть две таблицы, определенные как:
CREATE TABLE airports (
code char(3) not null primary key,
name varchar(100) not null,
city varchar(50) not null,
state varchar(5),
country char(2) not null references fcountries(code)
)
и
CREATE TABLE flights (
departure char(3) not null references airports(code), -- airport code
arrival char(3) not null references airports(code), -- airport code
dep_time time not null,
airline char(2) not null references airlines(code)
)
Мне нужно получить количество рейсов, вылетающих из аэропорта и прибывающих в аэропорт, используя postgres.Итак, я написал
select
code,
count(departure)
from airports
join flights
on flights.departure = airports.code group by code;
и для отправления аналогично:
select
code,
count(arrival) as Arrival
from airports
join flights
on flights.arrival = airports.code group by code;
Но мне нужно объединить эти два значения и получить счетчик прибытия-отправления в одном и том же результате.Я не уверен, как это сделать?Я написал этот запрос
select
code,
count(departure),
x.arrival
from (
select count(arrival) as arrival
from airports
join flights
on flights.arrival = airports.code group by code
) x,
airports
join flights on airports.code = flights.departure
group by code, x.arrival
order by code;
Но результат неверный, так как в этом результате повторяется «код».Я довольно новичок в SQL и не знаю, как это написать.