Накопительные итоги стр. 2 |
|||||
Расширение поддержки оконных функций в Cистема управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL Server 2012 позволяет решить задачу о накопительных итогах совсем просто. Применительно к нашей задаче речь идет о следующих появившихся возможностях: Т.е. мы можем получить накопительный итог, упорядочив данные по дате и подсчитав сумму от текущей строки и (неограниченно) выше, причем сделать это с помощью одной функции! Задачу о накопительных итогах для пункта 2, которая рассматривалась на предыдущей странице, теперь мы можем решить так:
Для получения накопительных итогов по каждому пункту отдельно уберем из предыдущего запроса условие отбора по пункту:
Представленные здесь решения будут работать в PostgreSQL и Oracle. Что касается MySQL, то там поддержка оконных функций реализована в версии 8.0. Если нам потребуется подсчитать накопительный итог с учетом не всех предшествующих строк, а, скажем, двух. В этом случае мы можем использовать следующий синтаксис:
Суммирование происходит в окне, которое задается предложением
Здесь задается диапазон строк (rows) между (between) текущей строкой (current row) и двумя строками выше (2 preceding). В этом примере рассматриваются все строки таблицы, упорядоченные по date, point (сортировка по point устраняет неоднозначность, поскольку несколько пунктов могут иметь отчетность в один и тот же день).
Рекомендуемые упражнения: 106
|