Учебное пособие Санкт-Петербург «бхв-петербург»


SELECT departure_city, count( * )



Pdf көрінісі
бет153/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   149   150   151   152   153   154   155   156   ...   256
sql osnovi yazika

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


Глава 6. Запросы
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   ...   149   150   151   152   153   154   155   156   ...   256




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

    Басты бет