В управлении базами данных , агрегатная функция или агрегация функция является функцией , где значения нескольких строк группируются вместе , чтобы сформировать единое итоговое значение .
Общие агрегатные функции включают:
Другие включают:
- Nanmean (означает игнорирование значений NaN, также известных как «ноль» или «ноль»)
- Стандартное отклонение
Формально совокупность функция принимает в качестве входных данных набора , A мультимножества (мешок), или список из некоторого входного домена I и выводит элемент выходного домена O . [1] Домены ввода и вывода могут быть одинаковыми, например, для SUM
, или могут быть разными, например, для COUNT
.
Агрегатные функции обычно встречаются во многих языках программирования , в электронных таблицах и в реляционной алгебре .
listagg
Функции, как определенно в SQL: 2016 стандарта [2]
агрегаты данные из нескольких строк в одну сцепленную строку.
Разложимые агрегатные функции [ править ]
Агрегатные функции представляют собой узкое место , поскольку они потенциально требуют одновременного ввода всех входных значений. При распределенных вычислениях желательно разделять такие вычисления на более мелкие части и распределять работу, обычно выполняя параллельные вычисления , с помощью алгоритма «разделяй и властвуй» .
Некоторые агрегатные функции могут быть вычислены путем вычисления агрегата для подмножеств и последующего агрегирования этих агрегатов; примеры включают COUNT, MAX, MIN,
и SUM
. В других случаях совокупность может быть вычислена путем вычисления вспомогательных чисел для подмножеств, агрегирования этих вспомогательных чисел и, наконец, вычисления общего числа в конце; примеры включают AVERAGE
(отслеживание суммы и количества, деление в конце) и RANGE
(отслеживание максимума и минимума, вычитание в конце). В других случаях агрегат не может быть вычислен без одновременного анализа всего набора, хотя в некоторых случаях приближения могут быть распределены; примеры включают DISTINCT COUNT, MEDIAN,
и MODE
.
Такие функции называются декомпозируемыми агрегатными функциями [3] или декомпозируемыми агрегатными функциями . Простейшие могут называться саморазлагающимися функциями агрегирования , которые определяются как те функции f , для которых существует такой оператор слияния , что
где - объединение мультимножеств (см. гомоморфизм моноидов ).
Например SUM
:
- , для синглтона;
- , что означает, что слияние - это просто сложение.
COUNT
:
- ,
- .
MAX
:
- ,
- .
MIN
:
- , [2]
- .
Обратите внимание, что саморазлагаемые функции агрегирования можно комбинировать (формально, принимая продукт), применяя их по отдельности, так, например, можно вычислить и SUM
и COUNT
одновременно, отслеживая два числа.
В более общем смысле , можно определить разложимую функцию агрегации п как тот , который может быть выражен как состав конечной функции г и сама-разложимым функция агрегации ч , . Например, = / и = - .AVERAGE
SUM
COUNT
RANGE
MAX
MIN
В структуре MapReduce эти шаги известны как InitialReduce (значение для отдельной записи / набора одиночных элементов), Combine (двоичное слияние двух агрегатов) и FinalReduce (конечная функция для вспомогательных значений) [4], а также перемещение разлагаемой агрегации перед Shuffle. фаза известна как этап InitialReduce, [5]
Разлагаемые функции агрегирования важны при онлайн-аналитической обработке (OLAP), поскольку они позволяют вычислять запросы агрегирования на основе предварительно вычисленных результатов в кубе OLAP , а не на основе базовых данных. [6] Например, его легко поддерживать COUNT, MAX, MIN,
и SUM
в OLAP, поскольку они могут быть вычислены для каждой ячейки куба OLAP, а затем суммированы («свернуты»), но это трудно поддерживать MEDIAN
, так как это должно быть вычислено для каждый вид отдельно.
Другие разложимые агрегатные функции [ править ]
Для расчета среднего и стандартного отклонения от агрегированных данных для каждой группы необходимо иметь в наличии: сумму значений (Σx i = SUM (x)), количество значений (N = COUNT (x)) и сумма квадратов значений (Σx i 2 = SUM (x 2 )) каждой группы. [7]AVG
:
- .
или же
- .
или, только если COUNT (X) = COUNT (Y)
- .
SUM(x2)
: Сумма квадратов значений важна для расчета стандартного отклонения групп.
STDDEV
:
Для конечного населения с равными вероятностями во всех точках мы имеем [8] [ круговая ссылка ]
Это означает, что стандартное отклонение равно квадратному корню из разницы между средним квадратом значений и квадратом среднего значения.
- .
- .
См. Также [ править ]
- Перекрестная таблица, также известная как таблица непредвиденных обстоятельств
- Бурение данных
- Сбор данных
- Обработка данных
- Извлечь, преобразовать, загрузить
- Сложить (функция высшего порядка)
- Группировать по (SQL) , предложение SQL
- Куб OLAP
- Онлайн-аналитическая обработка
- Сводная таблица
- Реляционная алгебра
- Функции полезности для неделимых товаров # Агрегаты функций полезности
- XML для анализа
- AggregateIQ
Ссылки [ править ]
- ^ Хесус, Бакеро и Алмейда 2011 , 2 Определение проблемы, стр.
- ^ a b Винанд, Маркус (2017-05-15). «Большие новости в базах данных: новый стандарт SQL, Cloud Wars и ACIDRain (весна 2017 г.)» . DZone . Проверено 10 июня 2017 .
В декабре 2016 года ISO выпустила новую версию стандарта SQL.
В нем представлены новые функции, такие как сопоставление с образцом строк, список, форматирование даты и времени и поддержка JSON.
- ^ Хесус, Бакеро и Алмейда 2011 , 2.1 Разложимые функции, стр. 3–4.
- ↑ Yu, Gunda & Isard 2009 , 2. Распределенное агрегирование, стр. 2–4.
- ^ Yu, Gunda & Isard 2009 , 2. Распределенное агрегирование, стр. 1.
- ^ Чжан 2017 , стр. 1.
- ^ Ing. Оскар Бонилья, MBA
- ^ Стандартное отклонение # Тождества и математические свойства
- Юй Юань; Гунда, Прадип Кумар; Айсард, Майкл (2009). Распределенная агрегация для параллельных вычислений данных: интерфейсы и реализации . ACM SIGOPS 22-й симпозиум по принципам операционных систем. ACM . С. 247–260. DOI : 10.1145 / 1629575.1629600 .
- Иисус, Пауло; Бакеро, Карлос; Пауло Серхио Алмейда (2011). «Обзор распределенных алгоритмов агрегирования данных». arXiv : 1110.0725 [ cs.DC ].
- Чжан, Чао (2017). Симметричная и асимметричная агрегатная функция в массово-параллельных вычислениях (Технический отчет).
- Агрегатные функции (Transact-SQL)
Дальнейшее чтение [ править ]
- Грабиш, Мишель; Маришаль, Жан-Люк; Месияр, Радько; Пап, Эндре (2009). Функции агрегирования . Энциклопедия математики и ее приложений. 127 . Кембридж: Издательство Кембриджского университета . ISBN 978-0-521-51926-7. Zbl 1196.00002 .
- Агрегатные функции Oracle: примеры MAX, MIN, COUNT, SUM, AVG