MySQL GROUP POR Declaración
La declaración GROUP BY de MySQL
La GROUP BY
declaración agrupa filas que tienen los mismos valores en filas de resumen, como "encontrar la cantidad de clientes en cada país".
La GROUP BY
declaración se usa a menudo con funciones agregadas ( COUNT()
,
MAX()
,
MIN()
, SUM()
,
AVG()
) para agrupar el conjunto de resultados por una o más columnas.
GRUPO POR Sintaxis
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);
Base de datos de demostración
A continuación se muestra una selección de la tabla "Clientes" en la base de datos de ejemplo de Northwind:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 |
Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
MySQL GROUP BY Ejemplos
La siguiente instrucción SQL enumera el número de clientes en cada país:
Ejemplo
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;
La siguiente instrucción SQL enumera el número de clientes en cada país, ordenados de mayor a menor:
Ejemplo
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;
Base de datos de demostración
A continuación se muestra una selección de la tabla "Pedidos" en la base de datos de ejemplo de Northwind:
OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
---|---|---|---|---|
10248 | 90 | 5 | 1996-07-04 | 3 |
10249 | 81 | 6 | 1996-07-05 | 1 |
10250 | 34 | 4 | 1996-07-08 | 2 |
Y una selección de la tabla "Transportistas":
ShipperID | ShipperName |
---|---|
1 | Speedy Express |
2 | United Package |
3 | Federal Shipping |
GROUP BY con JOIN Ejemplo
La siguiente instrucción SQL enumera la cantidad de pedidos enviados por cada remitente:
Ejemplo
SELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrders FROM
Orders
LEFT JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID
GROUP BY ShipperName;