6.1 Lista de funciones agregadas
Cuando usa la agrupación de filas en SQL con el operador GROUP BY
, puede usar SELECT
funciones en la declaración que operan en los datos agrupados. Estas funciones también se denominan funciones agregadas.
Aquí hay una lista de los más populares:
# | Función | Descripción |
---|---|---|
1 | CONTAR() | Devuelve el número de valores en un grupo |
2 | SUMA() | Devuelve la suma de valores en un grupo |
3 | MÁX.() | Devuelve el valor máximo de un grupo. |
4 | MIN() | Devuelve el valor mínimo de un grupo. |
5 | PROMEDIO() | Devuelve la media de un grupo. |
6 | BIT_Y() | Realiza un AND bit a bit sobre todos los valores del grupo |
7 | BIT_OR() | Realiza un OR bit a bit sobre todos los valores del grupo |
8 | BIT_XOR() | Realiza un XOR bit a bit sobre todos los valores del grupo |
9 | GRUPO_CONCAT() | Concatena todos los valores del grupo en una cadena |
Ahora veamos algunos ejemplos con nuestras funciones agregadas.
6.2 Análisis de los salarios de los empleados
Calculemos algunas estadísticas sobre nuestros empleados a partir de la tabla de empleados .
Pregunta uno: ¿cuántos empleados tenemos?
Si queremos averiguar el número de todos los registros en la tabla, podemos usar la función de agregado para esto COUNT
. La solicitud se verá así:
SELECT COUNT(*) FROM employee
Y MySQL devolverá como respuesta el número 6. Tenemos 6 empleados en el departamento, incluido un gato. Está bien.
Pregunta dos: ¿cuánto pagamos por mes a todos los empleados?
Para responder a esta pregunta, necesitamos sumar los salarios de todos los empleados. Para hacer esto, usamos la función agregadaSUM()
La solicitud se verá así:
SELECT SUM(salary) FROM employee
Tenga en cuenta que esta vez debemos especificar los valores de qué columna estamos resumiendo. Hemos especificado una columna de salario . No podemos simplemente sumar todos los campos en una tabla.
Y MySQL devolverá como respuesta el número 461000. Tenemos 6 empleados en el departamento, y el salario es de 461 mil. Demasiado.
Y finalmente, la tercera pregunta: ¿cuáles son nuestros salarios máximos y mínimos en el departamento? Bueno, calculemos el salario promedio. Para hacer esto, necesitamos las funciones MIN
, MAX
y AVG
.
La consulta será un poco más compleja esta vez y se verá así:
SELECT MIN(salary), AVG(salary), MAX(salary)
FROM employee
El resultado de esta consulta será:
MIN(salario) | PROMEDIO(salario) | MAX(salario) |
---|---|---|
1000 | 76833.3333 | 200000 |
El salario mínimo en nuestro departamento es $1,000 – muy bueno. El salario máximo es de 200 mil, pero este es el director.
Pero el salario promedio es demasiado alto, necesita optimizar los costos de alguna manera. Contratemos otro gato y listo :)