En la gestión de bases de datos , una función de agregación o función de agregación es una función en la que los valores de varias filas se agrupan para formar un único valor de resumen .
Las funciones agregadas comunes incluyen:
Otros incluyen:
- Nanmean (significa ignorar los valores de NaN, también conocidos como "nulo" o "nulo")
- Stddev
Formalmente, una función de agregado toma como entrada un conjunto , un conjunto múltiple (bolsa), o una lista de algunos de dominio de entrada I y da salida a un elemento de un dominio de salida O . [1] Los dominios de entrada y salida pueden ser los mismos, como para SUM
, o pueden ser diferentes, como para COUNT
.
Las funciones agregadas ocurren comúnmente en numerosos lenguajes de programación , en hojas de cálculo y en álgebra relacional .
La listagg
función, tal como se define en el estándar SQL: 2016 [2], agrega datos de varias filas en una sola cadena concatenada.
Funciones agregadas descomponibles
Las funciones agregadas presentan un cuello de botella , porque potencialmente requieren tener todos los valores de entrada a la vez. En la computación distribuida , es deseable dividir dichos cálculos en partes más pequeñas y distribuir el trabajo, generalmente computando en paralelo , a través de un algoritmo de divide y vencerás .
Algunas funciones agregadas se pueden calcular calculando el agregado de subconjuntos y luego agregando estos agregados; los ejemplos incluyen COUNT, MAX, MIN,
y SUM
. En otros casos, el agregado se puede calcular calculando números auxiliares para subconjuntos, agregando estos números auxiliares y, finalmente, calculando el número total al final; los ejemplos incluyen AVERAGE
(seguimiento de suma y recuento, dividiendo al final) y RANGE
(seguimiento de máximo y mínimo, restando al final). En otros casos, el agregado no se puede calcular sin analizar el conjunto completo de una vez, aunque en algunos casos se pueden distribuir aproximaciones; los ejemplos incluyen DISTINCT COUNT, MEDIAN,
y MODE
.
Estas funciones se denominan funciones de agregación descomponibles [3] o funciones de agregación descomponibles . Las más simples pueden denominarse funciones de agregación autodescomponibles , que se definen como aquellas funciones f tales que hay un operador de combinación tal que
dónde es la unión de múltiples conjuntos (ver homomorfismo monoide ).
Por ejemplo SUM
:
- , por un singleton;
- , lo que significa que se fusionan es simplemente una adición.
COUNT
:
- ,
- .
MAX
:
- ,
- .
MIN
:
- , [2]
- .
Tenga en cuenta que las funciones de agregación autodescomponibles se pueden combinar (formalmente, tomando el producto) aplicándolas por separado, de modo que, por ejemplo, se pueden calcular tanto el SUM
y COUNT
al mismo tiempo, rastreando dos números.
De manera más general, se puede definir una función de agregación descomponible f como una que se puede expresar como la composición de una función final g y una función de agregación autodescomponible h ,. Por ejemplo, AVERAGE
= SUM
/ COUNT
y RANGE
= MAX
- MIN
.
En el marco de MapReduce , estos pasos se conocen como InitialReduce (valor en registro individual / conjunto singleton), Combine (fusión binaria en dos agregaciones) y FinalReduce (función final en valores auxiliares), [4] y mover agregación descomponible antes de Shuffle fase se conoce como un paso InitialReduce, [5]
Las funciones de agregación descomponibles son importantes en el procesamiento analítico en línea (OLAP), ya que permiten que las consultas de agregación se calculen en los resultados calculados previamente en el cubo OLAP , en lugar de en los datos base. [6] Por ejemplo, es fácil de admitir COUNT, MAX, MIN,
y SUM
en OLAP, ya que se pueden calcular para cada celda del cubo OLAP y luego resumir ("enrollar"), pero es difícil de admitir MEDIAN
, ya que debe calcularse para cada vista por separado.
Otras funciones agregadas descomponibles
Para calcular la desviación promedio y estándar de los datos agregados, es necesario tener disponible para cada grupo: el total de valores (Σx i = SUM (x)), el número de valores (N = COUNT (x)) y el total de cuadrados de los valores (Σx i 2 = SUM (x 2 )) de cada grupo. [7]AVG
:
- .
o
- .
o, solo si COUNT (X) = COUNT (Y)
- .
SUM(x2)
: La suma de los cuadrados de los valores es importante para calcular la desviación estándar de los grupos.
STDDEV
:
Para una población finita con probabilidades iguales en todos los puntos, tenemos [8] [ referencia circular ]
Esto significa que la desviación estándar es igual a la raíz cuadrada de la diferencia entre el promedio de los cuadrados de los valores y el cuadrado del valor promedio.
- .
- .
Ver también
- Tabulación cruzada también conocida como tabla de contingencia
- Perforación de datos
- Procesamiento de datos
- Procesamiento de datos
- Extraer, transformar, cargar
- Doblar (función de orden superior)
- Agrupar por (SQL) , cláusula SQL
- Cubo OLAP
- Procesamiento analítico en línea
- Tabla dinámica
- Álgebra relacional
- Funciones de utilidad sobre bienes indivisibles # Agregados de funciones de utilidad
- XML para análisis
- AggregateIQ
Referencias
- ^ Jesús, Baquero y Almeida 2011 , 2 Definición del problema, págs. 3.
- ↑ a b Winand, Markus (15 de mayo de 2017). "Grandes noticias en bases de datos: nuevo estándar SQL, Cloud Wars y ACIDRain (primavera de 2017)" . DZone . Consultado el 10 de junio de 2017 .
En diciembre de 2016, ISO lanzó una nueva versión del estándar SQL.
Introduce nuevas funciones como la coincidencia de patrones de filas, listagg, formato de fecha y hora y compatibilidad con JSON.
- ^ Jesús, Baquero y Almeida 2011 , 2.1 Funciones descomponibles, págs. 3-4.
- ^ Yu, Gunda & Isard 2009 , 2. Agregación distribuida, págs. 2-4.
- ^ Yu, Gunda & Isard 2009 , 2. Agregación distribuida, p. 1.
- ^ Zhang 2017 , pág. 1.
- ^ Ing. Óscar Bonilla, MBA
- ^ Desviación estándar # Identidades y propiedades matemáticas
- Yu, Yuan; Gunda, Pradeep Kumar; Isard, Michael (2009). Agregación distribuida para computación en paralelo de datos: interfaces e implementaciones . 22º simposio de ACM SIGOPS sobre principios de sistemas operativos. ACM . págs. 247–260. doi : 10.1145 / 1629575.1629600 .
- Jesús, Paulo; Baquero, Carlos; Paulo Sérgio Almeida (2011). "Una encuesta de algoritmos de agregación de datos distribuidos". arXiv : 1110.0725 [ cs.DC ].
- Zhang, Chao (2017). Función agregada simétrica y asimétrica en computación masivamente paralela (informe técnico).
- Funciones agregadas (Transact-SQL)
Otras lecturas
- Grabisch, Michel; Marichal, Jean-Luc; Mesiar, Radko; Pap, Endre (2009). Funciones de agregación . Enciclopedia de Matemáticas y sus Aplicaciones. 127 . Cambridge: Cambridge University Press . ISBN 978-0-521-51926-7. Zbl 1196.00002 .
- Funciones agregadas de Oracle: MAX, MIN, COUNT, SUM, AVG Ejemplos