Funciones de agregación

Las funciones de agregación devuelven un valor único de un conjunto de registros. Puede utilizar una función de agregación como parte de una secuencia SELECT, con un nombre de campo (por ejemplo, AVG(SALARIO)) o en combinación con una expresión de columna (por ejemplo, AVG(SALARIO * 1,07)).

Puede escribir delante de la expresión de columna el operador DISTINCT para eliminar los valores duplicados.

Ejemplo

Copiar
COUNT (DISTINCT apellidos)

En este ejemplo, sólo se cuentan los valores de apellidos únicos.

Función de agregación

Devuelve

SUM

El total de los valores de una expresión de campo numérico. Por ejemplo, SUM(SALARIO) devuelve la suma de todos los valores de campos de salario.

AVG

La media de los valores de una expresión de campo numérico. Por ejemplo, AVG(SALARIO) devuelve la media de todos los valores de campos de salario.

COUNT

El número de valores de cualquier expresión de campo. Por ejemplo, COUNT(NOMBRE) devuelve el número de valores de nombres. Cuando se utiliza COUNT con un nombre de campo, COUNT devuelve el número de valores de campos no nulos. Un ejemplo especial es COUNT(*), que devuelve el número de registros del conjunto, incluidos los registros con valores nulos.

MAX

El valor máximo de cualquier expresión de campo. Por ejemplo, MAX(SALARIO) devuelve el valor máximo de los campos de salario.

MIN

El valor mínimo de cualquier expresión de campo. Por ejemplo, MIN(SALARIO) devuelve el valor mínimo de los campos de salario.

Ejemplos

Copiar
SELECT SUM (Datos_ventas.Cantidad) AS agg FROM Datos_ventas

SELECT AVG (Datos_ventas.Cantidad) AS agg FROM Datos_ventas

SELECT COUNT (Datos_ventas.Cantidad) AS agg FROM Datos_ventas

SELECT MAX (Datos_ventas.Cantidad) AS agg FROM Datos_ventas WHERE Datos_ventas.Cantidad < 3000

SELECT MIN (Datos_ventas.Cantidad) AS agg FROM Datos_ventas WHERE Datos_ventas.Cantidad > 3000

No se pueden utilizar funciones de agregación como argumento para otras funciones. En ese caso, el software de FileMaker devuelve el código de error 8309 ("No se admiten las expresiones con agregaciones"). Por ejemplo, la siguiente secuencia no es válida porque la función de agregación SUM no se puede utilizar como argumento de la función ROUND:

Ejemplo

Copiar
SELECT ROUND(SUM(Salario), 0) FROM Nómina

Sin embargo, las funciones de agregación pueden utilizar funciones que devuelvan números como argumentos. La siguiente secuencia es válida:

Ejemplo

Copiar
SELECT SUM(ROUND(Salario, 0)) FROM Nómina