Агрегирование и группировка данных. Агрегация в программировании. Экспорт данных из ERwin в BPwin и связывание объектов модели данных со стрелками и работами

Агрегирование данных состоит в формировании промежуточных итогов , а также создании сводных и консолидированных таблиц .)

Агрегирование данных выполняется в тех таблицах, в которых имеются поля с повторяющимися по смыслу значениями. Наиболее типичными задачами подобного типа являются задачи получения различного вида статистических итогов. Поясним подробнее назначение каждой из отмеченных процедур.

· Промежуточные итоги . Эта опция позволят сформировать промежуточные итоговые результаты определенного вида (сумма, среднее значение, максимум, минимум, количество значащих записей и т.д.) для выделенного ряда данных (группы записей). При формировании промежуточных итогов требуется предварительно произвести сортировку таблицы по полям группировки записей. К полученным промежуточным итогам можно также добавить новые итоги с сохранением предыдущих итогов.

· Сводные таблицы. Этот инструмент табличного процессора обеспечивает формирование сводной (агрегированной) информации и представление табличных данных в структурированном виде (в определенной внешней форме с упорядочением местоположения фрагментов), а также построение связанной со сводной таблицей сводной диаграммы. Распределение информации в сводной таблице можно задать, указывая какие поля и элементы должны в ней содержаться. Поле - это некоторая общая категория (поименованный столбец), а элемент - это отдельное значение, содержащееся внутри некоторой категории значений. Источником данных для сводной таблицы может быть электронная таблица, данные из внешних баз и т.д. Помимо «базовых» полей из источников данных, сводная таблица допускает формирование вычисляемых полей в области данных, а также вычисляемых элементов для полей группировки. Элементы полей группирования далее могут объединяться в группы, для которых можно указать тип итоговой функции.

Примечание.

Сводная таблица - это средство только для отображения информации и данные, расположенные в теле сводной таблицы, нельзя изменить. Чтобы малейшие изменения данных в источниках информации оперативно отражались в сводной таблице как в ее ячейках, напрямую связанных с источниками данных, так и ячейках, отображающих итоговые расчеты, необходимо установить автоматический режим обновления сводной таблицы.

· Консолидация данных . Это особый способ вычисления итогов для диапазона ячеек. Консолидируемые данные могут находится на одном и том же или нескольких листах рабочей книги, а также на листах нескольких разных рабочих книг. При консолидации доступны все типичные функции статистических итогов (сумма, среднее значение, максимум, минимум и т.п.). Результат консолидации записывается на лист рабочей книги, причем на одном и том же листе могут быть записаны несколько результатов консолидации с одними и теми же исходными диапазонами ячеек с данными, но с разными итоговыми функциями. Однако, если исходные диапазоны ячеек отличаются, результаты консолидации должны располагаться на разных листах. Различают следующие виды консолидации:


· Консолидация по расположению ячеек - состав и порядок следования консолидируемых данных во всех диапазонах постоянный, т.е. данных исходных областей находятся в одном и том же месте и размещены в одном и том же порядке. Этот способ используется для консолидации данных нескольких рабочих листов, созданных на основе одного шаблона.

· Консолидация по категориям - когда данные исходных областей не упорядочены, но имеют одни и те же заголовки столбцов и строк. Этот способ применяется при консолидации данных рабочих листов, имеющих разную структуру, но одинаковые заголовки.

· Консолидация с помощью трехмерных ссылок - исходные области располагаются на любом листе, в любой книге, на других открытых листах или книгах, а также зачастую на листах других табличных процессоров. Этот способ является наиболее предпочтительным, т.к. он снимает ограничения на расположение данных в исходных областях.

Примечание.

После создания консолидированной итоговой таблицы можно добавлять, удалять или изменять исходные области данных . Кроме этого, можно создать связи итоговой таблицы с исходными данными, с тем, чтобы данные области назначения итоговой таблицы автоматически обновлялись при изменении данных в исходных областях.

В данном разделе рассматривается применение в запросе агрегирующих функций- функций вычисляющих результат по набору значений группы, либо всех записей БД. Например, функция sum возвращает сумму значений заданного поля, а функция count - общее число записей.

Агрегирующая функция может применяться ко всем записям БД слоя, к выборке по заданным условиям и, кроме того, возможно группирование записей слоя в несколько групп, и применение агрегирующей функции к каждой группе («Группировка записей»).

Применяемые агрегирующие функции записываются после ключевого слова SELECT . Также допускается использовать агрегирующие функции в составе выражений, включающих функции, арифметические и побитовые операции. В одном запросе может перечисляться несколько выражений с агрегирующими функциями. Не допускается в запросе одновременно с агрегирующими функциями запрашивать значения полей записей БД, либо использовать в аргументах неагрегирующих функций обращения к полям записей БД. Например, запрос вида SELECT SQRT(Area), SUM(Perimeter) FROM Здания не допускается, поскольку аргументом функции SQRT является название поля данных.

Общая запись агрегирующих функций:

<Функция> ([DISTINCT ] <выражение> )

В качестве аргумента агрегирующей функции обычно используется название поля, над значениями которого проводятся вычисления. Также допускается в качестве аргумента использовать выражения, включающие в себя произвольную комбинацию названий полей, констант, функций и подзапросов, объединенных арифметическими и побитовыми операциями.

Остальная часть запроса задается стандартным образом.

Перед аргументом функции (кроме функций MAX и MIN )может указываться ключевое слово DISTINCT . В этом случае итоговое значение вычисляется только для различающихся значений аргумента. При использовании ключевого слова DISTINCT в качестве аргумента агрегирующей функции нельзя использовать арифметические выражения, - только названия полей.

В языке SQL используются следующие агрегирующие функции:

SUM ([DISTINCT ] <выражение>)

Выводит в итоговой таблице сумму значений для выражения по полям выборки. Выражение должно возвращать числовое значение.

AVG ([DISTINCT ] <выражение>)

Среднее значение для выражения. Выражение должно возвращать числовое значение.

COUNT ([DISTINCT ] <выражение> |*)

Подсчитывает число записей, в который выражение не имеет значение Null (поля имеют значение Null , когда никакое значение для них не задано). Выражение может возвращать произвольное значение.

При используемом формате функции COUNT (*) возвращает общее количество записей в БД слоя.

MAX (<выражение>)

Возвращает максимальное значение выражения для выборки.

MIN ( <выражение> )

Возвращает минимальное значение выражения из выборки.

Применение агрегирующих функций

Простой пример

SELECT SUM (Perimeter) FROM Здания

Выводит сумму периметров зданий.

Одновременное применение нескольких функций

SELECT AVG (Area), Count(*) FROM Здания

Выводит среднюю площадь здания и общее количество зданий.

Применение функций совместно с условиями отбора

SELECT SUM (Area) FROM Здания WHERE Улица="Нахимова"

Возвращает сумму площадей зданий расположенных на улице Нахимова.

Применение выражений в качестве аргументов агрегирующих функций

SELECT SUM(Area/Perimeter*2) FROM Здания

Для каждого здания рассчитывается величина равная Площадь/Периметр*2 и суммируется.

Применение агрегирующих функций в составе выражений

SELECT SQRT (SUM (Area)), "Общий периметр" + SUM (Perimeter) FROM Здания

Возвращает квадратный корень от суммарной площади всех зданий и фразу вида «Общий периметр XXX » , где XXX - суммарный периметр всех зданий.

Использование ключевого слова DISTINCT

SELECT COUNT(DISTINCT Улица) FROM Здания

Возвращает количество разных названий улиц в БД слоя.

Агрегирование данных состоит в формировании промежуточных итогов , а также создании сводных и консолидированных таблиц .)

Агрегирование данных выполняется в тех таблицах, в которых имеются поля с повторяющимися по смыслу значениями. Наиболее типичными задачами подобного типа являются задачи получения различного вида статистических итогов. Поясним подробнее назначение каждой из отмеченных процедур.

· Промежуточные итоги . Эта опция позволят сформировать промежуточные итоговые результаты определенного вида (сумма, среднее значение, максимум, минимум, количество значащих записей и т.д.) для выделенного ряда данных (группы записей). При формировании промежуточных итогов требуется предварительно произвести сортировку таблицы по полям группировки записей. К полученным промежуточным итогам можно также добавить новые итоги с сохранением предыдущих итогов.

· Сводные таблицы. Этот инструмент табличного процессора обеспечивает формирование сводной (агрегированной) информации и представление табличных данных в структурированном виде (в определенной внешней форме с упорядочением местоположения фрагментов), а также построение связанной со сводной таблицей сводной диаграммы. Распределение информации в сводной таблице можно задать, указывая какие поля и элементы должны в ней содержаться. Поле - это некоторая общая категория (поименованный столбец), а элемент - это отдельное значение, содержащееся внутри некоторой категории значений. Источником данных для сводной таблицы может быть электронная таблица, данные из внешних баз и т.д. Помимо «базовых» полей из источников данных, сводная таблица допускает формирование вычисляемых полей в области данных, а также вычисляемых элементов для полей группировки. Элементы полей группирования далее могут объединяться в группы, для которых можно указать тип итоговой функции.

Примечание.

Сводная таблица - это средство только для отображения информации и данные, расположенные в теле сводной таблицы, нельзя изменить. Чтобы малейшие изменения данных в источниках информации оперативно отражались в сводной таблице как в ее ячейках, напрямую связанных с источниками данных, так и ячейках, отображающих итоговые расчеты, необходимо установить автоматический режим обновления сводной таблицы.

· Консолидация данных . Это особый способ вычисления итогов для диапазона ячеек. Консолидируемые данные могут находится на одном и том же или нескольких листах рабочей книги, а также на листах нескольких разных рабочих книг. При консолидации доступны все типичные функции статистических итогов (сумма, среднее значение, максимум, минимум и т.п.). Результат консолидации записывается на лист рабочей книги, причем на одном и том же листе могут быть записаны несколько результатов консолидации с одними и теми же исходными диапазонами ячеек с данными, но с разными итоговыми функциями. Однако, если исходные диапазоны ячеек отличаются, результаты консолидации должны располагаться на разных листах. Различают следующие виды консолидации:

· Консолидация по расположению ячеек - состав и порядок следования консолидируемых данных во всех диапазонах постоянный, т.е. данных исходных областей находятся в одном и том же месте и размещены в одном и том же порядке. Этот способ используется для консолидации данных нескольких рабочих листов, созданных на основе одного шаблона.

· Консолидация по категориям - когда данные исходных областей не упорядочены, но имеют одни и те же заголовки столбцов и строк. Этот способ применяется при консолидации данных рабочих листов, имеющих разную структуру, но одинаковые заголовки.

· Консолидация с помощью трехмерных ссылок - исходные области располагаются на любом листе, в любой книге, на других открытых листах или книгах, а также зачастую на листах других табличных процессоров. Этот способ является наиболее предпочтительным, т.к. он снимает ограничения на расположение данных в исходных областях.

Примечание.

После создания консолидированной итоговой таблицы можно добавлять, удалять или изменять исходные области данных . Кроме этого, можно создать связи итоговой таблицы с исходными данными, с тем, чтобы данные области назначения итоговой таблицы автоматически обновлялись при изменении данных в исходных областях.

Процедура Агрегировать данные позволяет преобразовать группы наблюдений в наблюдения, содержащие агрегированную информацию по соответствующей группе, и создавать новый - агрегированный - файл данных или создавать новые переменные в активном наборе данных, содержащие агрегированную информацию. Наблюдения агрегируются на основе значений нуля или большего числа группирующих переменных. Если группирующие переменные не заданы, то весь набор данных представляет собой единую группу для агрегирования.

  • Если вы создаете новый агрегированный файл данных, то новый файл будет содержать по одному наблюдению на каждую группу, определяемую группирующей переменной. Например, если имеется одна группирующая переменная с двумя значениями, то новый файл данных будет содержать только два наблюдения. Если не заданы группирующие переменные, то новый файл данных будет содержать одно наблюдение.
  • Если агрегированные переменные добавляются в активный набор данных, сам файл данных не агрегируется. Каждое наблюдение с одинаковыми значениями группирующих переменных получает одинаковые значения для новых агрегированных переменных. Например, если имеется единственная группирующая переменная gender , то все мужчины будут иметь одинаковое значение новой агрегированной переменной, представляющей средний возраст. Если не задано группирующих переменных, то все наблюдения будут получать одно и то же значение для новой агрегируемой переменной, представляющей средний возраст.

Группирующие переменные. Наблюдения разбиваются на группы, на основании значений этих переменных. Каждая уникальная комбинация значений группирующих переменных определяет группу. Если создается новый, агрегированный файл данных, все группирующие переменные сохраняются в новом файле под своими прежними именами и с информацией из словаря данных. Группирующая переменная, если задана, может быть числовой или текстовой.

Агрегируемые переменные. Для создания новых переменных используются исходные переменные с функциями агрегирования. За именем агрегированной переменной идет необязательная метка переменной, имя агрегирующей функции и имя исходной переменной в скобках.

Можно изменять имена агрегируемых переменных, заданные по умолчанию, добавлять описательные метки переменных, а также изменять функции, используемые для расчета агрегированных значений. Можно также создать переменную, содержащую число наблюдений, попавших в каждую группу при агрегировании.

Как агрегировать файл данных

  1. Выберите в меню:

    Данные > Агрегировать...

  2. Можно задать группирующие переменные, определяющие, как наблюдения группируются при агрегировании данных. Если группирующие переменные не заданы, то весь набор данных представляет собой единую группу для агрегирования.
  3. Выберите одну или несколько агрегируемых переменных.
  4. Выберите агрегирующую функцию для каждой агрегируемой переменной.

Дополнительно вы можете заменить имена агрегируемых переменных по умолчанию на новые имена переменных, задать описательные метки переменных и создать переменную, которая будет содержать количества наблюдений в каждой группе.

Сохранение агрегированных результатов

Вы можете добавить агрегированные переменные в активный набор данных или создать новый, агрегированный файл данных.

  • Добавить агрегированные переменные в активный набор данных. В активный набор данных добавляются новые переменные, основанные на функциях агрегирования. Сам файл данных не агрегируется. Каждое наблюдение с одинаковыми значениями группирующих переменных получает одинаковые значения для новых агрегированных переменных.
  • Создать новый набор данных, содержащий только агрегированные переменные. Сохраняет агрегированные данные в новом наборе данных в текущем сеансе работы. Файл включает группирующие переменные, задающие агрегированные наблюдения, и все агрегированные переменные, заданные функциями агрегирования. Активный набор данных не меняется.
  • Записать новый файл данных, содержащий только агрегированные переменные. Сохраняет агрегированные данные во внешнем файле данных. Файл включает группирующие переменные, задающие агрегированные наблюдения, и все агрегированные переменные, заданные функциями агрегирования. Активный набор данных не меняется.

Параметры сортировки для больших файлов данных

Для очень больших файлов данных более эффективным может быть агрегирование предварительно отсортированных данных.

Данные уже отсортированы по группирующим переменным. Если данные уже отсортированы по значениям группирующих переменных, то этот параметр позволяет процедуре выполняться быстрее и использовать меньше памяти. Пользуйтесь этим параметром с осторожностью.

  • Данные должны быть отсортированы по значениям группирующих переменных в том же порядке, в котором группирующие переменные указаны в процедуре Агрегировать данные.
  • Если вы добавляете переменные в активный набор данных, выбирайте этот параметр, только если данные отсортированы в порядке возрастания значений группирующих переменных.

Отсортировать данные перед агрегированием. В очень редких случаях с большими файлами данных вам, возможно, потребуется отсортировать файл данных по значениям группирующих переменных до агрегирования. Использовать этот параметр не рекомендуется, пока у вас не возникнут проблемы с памятью или быстродействием.