Задание 1.
Самостоятельно разберитесь, как работает приведенный запрос.
Выясните, что делает функция unnest. Для того чтобы найти ее описание, можно
воспользоваться теми разделами документации, которые были указаны в тек-
сте главы 4. Однако можно воспользоваться и предметным указателем (Index),
ссылка на который находится в самом низу оглавления документации.
В качестве вспомогательного запроса, проясняющего работу функции unnest,
можно выполнить следующий:
SELECT flight_no, unnest( days_of_week ) AS day_of_week
FROM routes
WHERE departure_city = 'Москва'
ORDER BY flight_no;
Задание 2.
Использование номеров дней недели в предыдущей выборке не
должно вызывать затруднений. Но все-таки предположим, что нас попросили
модифицировать запрос, чтобы результат выводился в таком виде:
name_of_day | num_flights
-------------+-------------
Пн.
|
131
Вт.
|
134
Ср.
|
126
Чт.
|
136
Пт.
|
124
Сб.
|
133
Вс.
|
124
(7 строк)
Покажем одно из возможных решений задачи. Оно основано на использова-
нии специальной табличной функции unnest в предложении FROM. Подробно
об этом написано в документации в разделе 7.2.1.4 «Табличные функции». Функ-
ция unnest может принимать любое число параметров-массивов, а возвращает
набор строк, которые могут использоваться в запросах, как обычные таблицы.
В этих наборах строк столбцы формируются из значений, содержащихся в мас-
сивах.
Достарыңызбен бөлісу: