Оконные функции T-SQL
1012Работа с базами данных в .NET Framework --- Оконные функции T-SQL
Оконными функциями (window functions) называются функции, которые применяются к наборам строк и определяются посредством предложения OVER. В основном они используются для аналитических задач, позволяя вычислять нарастающие итоги и скользящие средние, а также выполнять многие другие вычисления. Эти функции основаны на глубоком принципе языка SQL (обоих стандартов - ISO и ANSI) - принципе работы с окнами (windowing). Основа этого принципа - возможность выполнять различные вычисления с набором, или окном, строк и возвращать одно значение. Оконные функции позволяют решать многие задачи, связанные с запросом данных, позволяя выражать вычисления в рамках наборов намного проще, интуитивно понятнее и эффективнее.
В истории поддержки стандарта оконных функций в Microsoft SQL Server есть две ключевые точки:
В SQL Server 2005 была реализована поддержка стандартной функциональности.
В SQL Server 2012 поддержка оконных функций была расширена.
Отсутствует поддержка некоторой стандартной функциональности, но с улучшениями в SQL Server 2012, поддержку оконных функций можно считать достаточно обширной. В этом небольшом руководстве я расскажу как о реализации этой функциональности в SQL Server, так и о стандартной функциональности, которая в этом сервере отсутствует. Каждый раз, упоминая новую функциональность, я буду указывать, поддерживается ли она в SQL Server, а также в какой версии появилась эта поддержка.
С момента появления поддержки оконных функций в SQL Server 2005 я обнаружил, что все чаще использую эти функции для совершенствования своих решений. Я методично заменяю старые решения, в которых применяются классические, традиционные конструкции языка, более новыми оконными функциями. А результаты обычно удается получить проще и более эффективно. Это настолько удобно, что в большинстве своих решений, требующих запроса данных, я теперь использую оконные функции.
Также стандартные SQL-системы и реляционные системы управления базами данных (РСУБД) все больше движутся в сторону аналитических решений, и оконные функции являются важной частью этой тенденции. Поэтому мне кажется, что оконным функциям принадлежит будущее в области запроса данных средствами SQL Server, а время, затраченное на их изучение, не пропадет зря.
В этом руководстве подробно рассказывается об оконных функциях, их оптимизации и о решениях для получения данных на их основе.
-
1. Окна в SQL Server
-
2. Сортировка и оптимизация
-
3. Решения с использованием оконных функций
- Вспомогательные виртуальные таблицы чисел
- Последовательности значений даты и времени
- Последовательности ключей
- Разбиение на страницы
- Удаление повторений
- Сведение данных
- Выбор первых n элементов в группе
- Моды
- Вычисление нарастающих итогов
- Максимальное количество параллельных интервалов
- Упаковка интервалов
- Пробелы и диапазоны
- Медианы
- Условные агрегаты
- Сортировка иерархий