Упорядочение в конструкции окна похоже на упорядочение в запросе. Во-первых, вы используете предложение order by для задания конкретного порядка строк в результирующем наборе. Во-вторых, это предложение включает список ключей сортировки и указывает, в каком порядке они должны быть отсортированы - по возрастанию или по убыванию значений. Наиболее важным отличием является то, что порядок внутри окна применим только к каждому разделу.
SQL Server 2008 не поддерживает упорядочение внутри конструкции окна для агрегатных функций. Другими словами, предложение over для агрегатных функций может содержать только предложение partition by. (Назло этому ограничению упорядочение внутри окна работает для функций ранжирования.) Пример 24.5, который поддерживается стандартом SQL, выдает ошибку.
В примере 24.6 используются обычные средства Transact-SQL для решения проблемы из примера 24.65, которая называется кумулятивной агрегацией или в данном случае кумулятивным суммированием. Кумулятивные агрегации аккумулируют данные, начиная с первого значения раздела и заканчивая текущим значением.
Вы можете использовать несколько столбцов таблицы для создания различных схем разделов в запросе (пример 24.7).
Запрос в примере 24.7 имеет две различные схемы разделов: одна со значениями столбца budget, другая со значениями столбца deptname. Первая используется для вычисления количества служащих в отделах с одинаковыми бюджетами. Вторая - для вычисления среднего значения бюджетов отделов, сгруппированных по их именам.