Учебно-практическое пособие москва 2017 ббк


SELECT departure_city, count( * )



Pdf көрінісі
бет148/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   144   145   146   147   148   149   150   151   ...   243
Байланысты:
Язык SQL. Базовый курс

SELECT departure_city, count( * )
FROM routes
GROUP BY departure_city
ORDER BY count DESC;
departure_city
| count
--------------------------+-------
Москва
|
154
Санкт-Петербург
|
35
Новосибирск
|
19
Екатеринбург
|
15
Ростов-на-Дону
|
14
Сочи
|
14
Красноярск
|
13
Ульяновск
|
11
. . .
Благовещенск
|
1
Братск
|
1
(101 строка)
Модифицируйте этот запрос так, чтобы он выводил число направлений, по ко-
торым летают самолеты из каждого города. Например, из Москвы в Санкт-
Петербург летает несколько различных рейсов, но все эти рейсы относятся к
одному направлению.
Указание: нужно передать параметр в функцию count.
11. В материализованном представлении «Маршруты» (routes) есть столбец
days_of_week, который содержит списки (массивы) номеров дней недели, когда
выполняется каждый рейс.
Для оптимизации расписания вылетов из Москвы нужно выявить пять горо-
дов, в которые из столицы отправляется наибольшее число ежедневных рей-
сов (маршрутов). Строки в выборке следует расположить в убывающем порядке
числа выполняемых рейсов.
Указание. Воспользуйтесь функцией array_length.
151


12.* Предположим, что служба материального снабжения нашей авиакомпании за-
просила информацию о числе рейсов, выполняющихся из Москвы в каждый
день недели.
Результат можно получить путем выполнения семи аналогичных запросов: по
одному для каждого дня недели. Начнем с понедельника:
SELECT 'Понедельник' AS day_of_week, count( * ) AS num_flights
FROM routes
WHERE departure_city = 'Москва'
AND days_of_week @> '{ 1 }'::integer[];
В этом запросе используется оператор «@>», который проверяет, содержатся ли
все элементы массива, стоящего справа от него, в том массиве, который нахо-
дится слева. В правом массиве всего один элемент — номер интересующего нас
дня недели.
day_of_week | num_flights
-------------+-------------
Понедельник |
131
(1 строка)
Запрос для вторника отличается лишь названием дня недели и его номером в
массиве.


Достарыңызбен бөлісу:
1   ...   144   145   146   147   148   149   150   151   ...   243




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет