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



Pdf көрінісі
бет136/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   132   133   134   135   136   137   138   139   ...   256
sql osnovi yazika

SELECT airport_name,
city,
round( latitude::numeric, 2 ) AS ltd,
timezone,
rank() OVER (
PARTITION BY timezone
ORDER BY latitude DESC
)
FROM airports
WHERE timezone IN ( 'Asia/Irkutsk', 'Asia/Krasnoyarsk' )
ORDER BY timezone, rank;
В этом запросе в предложении OVER ( PARTITION BY timezone ... ) указывает-
ся, что строки относятся к одному разделу на основе совпадения значений в столбце
timezone. Обратите внимание, что хотя в предложении OVER задан порядок сортиров-
ки, действующий в пределах каждого окна, тем не менее, с помощью предложения
ORDER BY указан также и порядок сортировки на уровне всего запроса.
airport_name |
city
| ltd |
timezone
| rank
---------------+---------------+-------+------------------+------
Усть-Илимск
| Усть-Илимск
| 58.14 | Asia/Irkutsk
|
1
Усть-Кут
| Усть-Кут
| 56.85 | Asia/Irkutsk
|
2
Братск
| Братск
| 56.37 | Asia/Irkutsk
|
3
Иркутск
| Иркутск
| 52.27 | Asia/Irkutsk
|
4
...
Абакан
| Абакан
| 53.74 | Asia/Krasnoyarsk |
5
Барнаул
| Барнаул
| 53.36 | Asia/Krasnoyarsk |
6
Горно-Алтайск | Горно-Алтайск | 51.97 | Asia/Krasnoyarsk |
7
Кызыл
| Кызыл
| 51.67 | Asia/Krasnoyarsk |
8
(13 строк)
Усложним запрос — для каждого аэропорта будем вычислять разницу между его гео-
графической широтой и широтой, на которой находится самый северный аэропорт
в этом же часовом поясе. Поскольку в запросе используются три конструкции с окон-
ными функциями и при этом способ формирования разделов и порядок сортировки
строк в разделах один и тот же, то вводится предложение WINDOW. Оно позволяет со-
здать определение раздела, а затем ссылаться на него при вызове оконных функций.
Самый северный аэропорт в каждом часовом поясе, т. е. самая первая строка в каж-
дом разделе, выбирается с помощью оконной функции first_value. Строго говоря,
эта функция получает доступ к первой строке оконного кадра, а не раздела. Однако
когда используются правила формирования оконного кадра по умолчанию, тогда его
начало совпадает с началом раздела.
174


6.3. Агрегирование и группировка
Обратите внимание, что в этом запросе в каждой конструкции OVER используется
ссылка на одно и то же окно, т. е. имеет место один и тот же порядок разбиения на

Достарыңызбен бөлісу:
1   ...   132   133   134   135   136   137   138   139   ...   256




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

    Басты бет