You are here
Agrupar registros en MySQL: GROUP BY Sin categoría 

Agrupar registros en MySQL: GROUP BY

Agrupar registros en MySQL: 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