Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- получаем таблицу из ticket_flights, flights и airports,
- -- подсасывая в ticket_flights информацию из flights (по flight_id)
- -- и из airports (по airport_code)
- -- причем берем только записи, в которых departure_time в некотором промежутке
- -- и city аэропорта это Москва
- CREATE TABLE departures AS
- SELECT
- departure_time,
- ticket_no
- FROM
- ticket_flights
- INNER JOIN flights ON flights.flight_id = ticket_flights.flight_id
- INNER JOIN airports ON airports.airport_code = flights.arrival_airport
- WHERE
- CAST(flights.departure_time AS date) BETWEEN '2018-07-23' AND '2018-09-30'
- AND (airports.city = 'Москва');
- -- агрегируем табличку departures по неделе, взятой из departure_time
- -- считаем количество билетов
- CREATE TABLE A AS
- SELECT
- EXTRACT (week FROM departures.departure_time) AS departure_week,
- COUNT(departures.ticket_no) AS tickets_amount
- FROM
- departures
- GROUP BY
- (week FROM departures.departure_time);
- -- получаем из таблички festivals табличку с неделями проведения фестивалей
- -- и их названиями, оставляя только фестивали в заданный период и в Москве
- CREATE TABLE B AS
- SELECT
- festival_name,
- EXTRACT (week FROM festivals.festival_date) AS festival_week
- FROM
- festivals
- WHERE
- CAST(festivals.festival_date AS date) BETWEEN '2018-07-23' AND '2018-09-30'
- AND (festival_city = 'Москва');
- -- получаем из таблички festivals табличку с неделями проведения фестивалей
- -- и их названиями, оставляя только фестивали в заданный период и в Москве
- SELECT
- A.departure_week,
- A.tickets_amount,
- B.festival_week,
- B.festival_name
- FROM
- A
- LEFT JOIN
- B
- ON
- A.departure_week = B.festival_week;
Add Comment
Please, Sign In to add comment