You are here
Funciones de agrupamiento en MySQL Sin categoría 

Funciones de agrupamiento en MySQL

Funciones de agrupamiento en MySQL

(COUNT – MAX – MIN – SUM – AVG)

 

Existen en MySQL funciones que nos permiten contar registros, calcular sumas, promedios, obtener valores máximos y mínimos. Ya hemos aprendido “COUNT()”, veamos otras.

 

La función “SUM()” retorna la suma de los valores que contiene el campo especificado. Por ejemplo, queremos saber la cantidad de productos que tenemos disponibles para la venta:

 

SELECT SUM(disponible) FROM productos;

 

También  podemos  combinarla  con  “WHERE”.  Por  ejemplo,  queremos  saber  cuántos productos tenemos de un determinado proveedor:

 

SELECT SUM(disponible) FROM productos WHERE codigo_provee ='4′;

 

Para averiguar el valor máximo o mínimo de un campo usamos las funciones “MAX()” y “MIN()” respectivamente. Ejemplo, queremos saber cuál es el mayor precio de todos los productos:

 

SELECT MAX(precio) FROM productos;

 

Queremos saber cuál es el valor mínimo de los productos de un determinado proveedor:

 

SELECT MIN(precio) FROM productos WHERE codigo_provee LIKE ‘%4%’;

 

La función AVG() retorna el valor promedio de los valores del campo especificado. Por ejemplo, queremos saber el promedio del precio de los productos que son monitores

 

SELECT AVG(precio) FROM productos WHERE nombre LIKE ‘%monitor%’;

 

Estas funciones se denominan “funciones de agrupamiento” porque operan sobre conjuntos de registros, no con datos individuales.

 

32.- Agrupar registros (GROUP BY)

 

Generalmente estas funciones se combinan con la sentencia “GROUP BY”, que agrupa registros para consultas detalladas.

 

Queremos saber la cantidad de productos por proveedor, podemos tipear la siguiente sentencia:

 

SELECT COUNT(*) FROM productos WHERE codigo_provee=1;

 

y repetirla con cada valor de “código_provee”:

 

SELECT COUNT(*) FROM productos WHERE codigo_provee=2;

 

SELECT COUNT(*) FROM productos WHERE codigo_provee=3′;

 

Pero hay otra manera, utilizando la cláusula “GROUP BY”:

 

SELECT nombre, COUNT(*) FROM productos GROUP BY codigo_provee;

 

Entonces, para saber la cantidad de visitantes que tenemos en cada ciudad utilizamos la función “COUNT()”, agregamos “GROUP BY” y el campo por el que deseamos que se realice el agrupamiento, también colocamos el nombre del campo a recuperar.

 

La instrucción anterior solicita que muestre el nombre del producto y cuente la cantidad agrupando los registros por el campo “codigo_provee”. Como resultado aparecen los nombres de los productos y la cantidad de registros para cada valor del campo.

 

Para conocer el total de pago a proveedores agrupados por ciudad del proveedor:

 

SELECT direccion, SUM(pago) FROM proveedores  GROUP BY direccion;

 

Para saber el máximo y mínimo pago a proveedores agrupados por direccion:

 

SELECT direccion, MAX(pago) FROM proveedores  GROUP BY direccion;

 

SELECT direccion, MIN(pago) FROM proveedores  GROUP BY direccion;

 

Se pueden simplificar las 2 sentencias anteriores en una sola sentencia, ya que usan el mismo

“GROUP BY”:

 

SELECT direccion, MIN(pago), MAX(pago) FROM proveedores GROUP BY direccion;

 

Para calcular el promedio del valor de pago agrupados por direccion:

 

SELECT direccion, AVG(pago) FROM proveedores  GROUP BY direccion;

 

 

 

 

Podemos agrupar por más de un campo, por ejemplo, vamos a hacerlo por “direccion” y “nombre”:

 

SELECT nombre,direccion, COUNT(*) FROM proveedores GROUP BY nombre,direccion;

 

También es posible limitar la consulta con “WHERE”.

 

Vamos a contar y agrupar por dirección sin tener en cuenta “Porlamar”:

 

SELECT nombre, direccion, COUNT(*) FROM proveedores WHERE direccion<>'Porlamar’ GROUP

BY direccion;

 

Podemos usar las palabras claves “ASC” y “DESC” para una salida ordenada:

 

SELECT nombre, direccion, COUNT(*) FROM proveedores WHERE direccion<>'Porlamar’ GROUP BY direccion DESC;


Si quieres seguir aprendiendo con nosotros, puedes ingresar a nuestros

Cursos y Diplomados de Tecnología Web visita www.uneweb.edu.ve  para más información

Related posts