Тема15. SQL в хранилищах данных: агрегация и суммирование
Аннотация. В настоящей лекции рассматривается расширение диалектов
SQL промышленных СУБД для агрегации и суммирования данных в хранилищах данных, приводятся примеры
работы со схемой «звезда», содержащей аддитивные и полуаддитивные факты. Разбираются примеры
использования расширения оператора SELEC T для агрегации данных в ХД.
Ключевые слова: структурированный язык, запрос SQL, оператор SELECT, предложение
GROUP BY, предложение HAVING, предложение ROLLUP, предложение CUBE, функция GROUPING, CASE выражение.
Цель лекции
Изучив материал настоящей лекции, обучающийся будет знать:
- как используется оператор SELECT для обработки данных в хранилищах данных;
- как используется предложение ROLLUP для агрегации данных в результирующем множестве;
- как используется предложение CUBE для агрегации данных в результирующем множестве;
- как используется предложение GROUPING для агрегации данных в результирующем множестве;
- синтаксис предложения GROUP BY оператора SELECT;
И научится:
- конструировать запросы для обработки аддитивных фактов;
- конструировать запросы для обработки полуаддитивных фактов;
- конструировать запросы для получения отчетов с использованием предложения ROLLUP;
- конструировать запросы для получения отчетов с использованием предложения CUBE;
- конструировать запросы для получения отчетов с использованием предложения GROUPING.
Литература: [14], [38], [42].
В настоящей лекции мы рассмотрели расширения предложения GROUP BY оператора SELECT,
предназначенные для агрегации данных в результирующем множестве.
- Предложение ROLLUP( ), которое генерирует агрегированные строки предложения
GROUP BY плюс частичные суммы или многоуровневые агрегированные строки, а также строку итоговой суммы
- Прделожение CUBE( ), которое генерирует агрегированные строки предложения GROUP BY, многоуровневые
агрегированные строки для всевозможных комбинаций колонок из заданного списка
Использование предложений CUBE и ROLLUP делает выполнение запросов и построение отчетов
проще в среде ХД. Предложение ROLLUP целесообразно использовать для задач, в которых вычисляются
промежуточные или частичные суммы, предложение CUBE — при решении задач создания перекрестных отчетов.
В заключение приведем подробный синтаксис предложения GROUP BY диалекта SQL СУБД семейства MS SQL Server.
Контрольные вопросы:
- Как используется предложение ROLLUP для агрегации данных в результирующем множестве?
- Как используется предложение CUBE для агрегации данных в результирующем множестве?
- Как используется предложение GROUPING для агрегации данных в результирующем множестве?