Derniers tutoriels de développement web
 

SQL GROUP BY Déclaration


Les fonctions d'agrégation ont souvent besoin d'un groupe ajouté BY.


GROUP BY Déclaration

Le instruction GROUP BY est utilisé en conjonction avec les fonctions d'agrégation pour regrouper les résultat réglé par une ou plusieurs colonnes.

SQL GROUP BY Syntaxe

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

Base de données Demo

Dans ce tutoriel, nous allons utiliser la base de données Northwind bien connu.

Voici une sélection de la "Orders" tableau:

Numéro de commande N ° de client EmployeeID Date de commande ShipperID
10248 90 5 1996-07-04 3
10249 81 6 1996-07-05 1
10250 34 4 1996-07-08 2

Et une sélection de la "Shippers" tableau:

ShipperID ShipperName Téléphone
1 Speedy Express (503) 555-9831
2 United Package (503) 555-3199
3 Federal Shipping (503) 555-9931

Et une sélection de la "Employees" tableau:

EmployeeID Nom de famille Prénom Date de naissance photo Remarques
1 Davolio Nancy 1968-12-08 EmpID1.pic Education includes a BA....
2 Fuller Andrew 1952-02-19 EmpID2.pic Andrew received his BTS....
3 Leverling Janet 1963-08-30 EmpID3.pic Janet has a BS degree....

SQL GROUP BY Exemple

Maintenant, nous voulons trouver le nombre de commandes envoyées par chaque expéditeur.

L'instruction SQL suivante compte que les commandes groupées par les expéditeurs:

Exemple

SELECT Shippers.ShipperName,COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders
LEFT JOIN Shippers
ON Orders.ShipperID=Shippers.ShipperID
GROUP BY ShipperName;

Essayez - le vous - même »

GROUP BY plus d'une colonne

Nous pouvons également utiliser GROUP BY sur plus d'une colonne, comme ceci:

Exemple

SELECT Shippers.ShipperName, Employees.LastName,
COUNT(Orders.OrderID) AS NumberOfOrders
FROM ((Orders
INNER JOIN Shippers
ON Orders.ShipperID=Shippers.ShipperID)
INNER JOIN Employees
ON Orders.EmployeeID=Employees.EmployeeID)
GROUP BY ShipperName,LastName;

Essayez - le vous - même »