Пробовали ли вы когда-нибудь писать запрос на Transact-SQL, который вычисляет изменения значений в процентах между двумя последними кварталами? Или запрос, который выполняет накапливаемое суммирование либо скользящее агрегирование? Если вы пытались это делать, то знаете, насколько сложные эти задачи. Сегодня вам больше не нужно их выполнять. Стандарт SQL: 1999 был приспособлен к набору функций оперативного анализа данных (Online Analytical Processing, OLAP), которые позволяют просто выполнять эти вычисления, так же как и множество других вычислений, которые являются слишком сложными в реализации. Эта часть стандарта SQL называется SQL/OLAP. SQL/OLAP включает все функции и операторы, которые используются для анализа данных.
Применение функций OLAP для пользователя имеет несколько преимуществ:
♦ пользователи со стандартными знаниями языка SQL могут легко задавать нужные им вычисления;
♦ системы баз данных, такие как Database Engine, могут выполнять эти вычисления гораздо эффективнее;
♦ поскольку существуют стандартные спецификации на эти функции, сейчас они стали более экономичными в эксплуатации для продавцов инструментов и приложений;
♦ почти все аналитические функции, предложенные в стандарте SQL: 1999, реализованы в системах баз данных предприятий одним и тем же способом. По этой причине вы можете переносить операторы в форме SQL/OLAP с одной системы на другую без какого-либо изменения кода.
Database Engine предоставляет множество расширений оператора select, которые могут быть использованы в первую очередь в аналитических операторах. Некоторые из этих расширений были определены в соответствии со стандартом SQL: 1999, а некоторые нет. В следующих разделах описываются как стандартные, так и нестандартные функции и операторы SQL/OLAP.