SQL La clause GROUP par Déclaration


SQL GROUP par Déclaration

Les fonctions d'agrégation ont souvent besoin d'une GROUPE ajouté BY.

La clause GROUP par Déclaration

L'instruction GROUP BY est utilisée en conjonction avec les fonctions d'agrégation pour regrouper l'ensemble de résultats par une ou plusieurs colonnes.

Syntaxe SQL GROUP BY

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


Exemple SQL GROUP 

Nous avons ce qui suit "Commandes" table:
O_IDOrderDateOrderPriceClient
112/11/20081000Hansen
223/10/20081600Nilsen
302/09/2008700Hansen
403/09/2008300Hansen
530/08/20082000Jensen
604/10/2008100Nilsen
Maintenant, nous voulons trouver la somme totale (total de la commande) de chaque client.
Nous allons devoir utiliser le GROUP BY pour regrouper les clients.
Nous utilisons l'instruction SQL suivante:
SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
L'ensemble de résultats se présente comme suit:
ClientSUM (OrderPrice)
Hansen2000
Nilsen1700
Jensen2000
Nice! N'est-ce pas? :)
Voyons ce qui se passe si nous omettons l'instruction GROUP BY:
SELECT Customer,SUM(OrderPrice) FROM Orders
L'ensemble de résultats se présente comme suit:
ClientSUM (OrderPrice)
Hansen5700
Nilsen5700
Hansen5700
Hansen5700
Jensen5700
Nilsen5700
L'ensemble de résultats ci-dessus n'est pas ce que nous voulions.
Explication de la raison pour laquelle la déclaration SELECT ci-dessus ne peuvent pas être utilisés: L'instruction SELECT ci-dessus a deux colonnes spécifiées (Client et SUM (OrderPrice) Le "SUM (OrderPrice)" renvoie une seule valeur (qui est la somme totale de la "OrderPrice" colonne. ), tandis que le «client» renvoie 6 valeurs (une valeur pour chaque ligne de la "Commandes" tableau). Ce ne sera donc pas nous donner le résultat correct. Cependant, vous avez vu que l'instruction GROUP BY permet de résoudre ce problème.

GROUP par plusieurs colonnes

On peut aussi utiliser la clause GROUP BY déclaration sur plus d'une colonne, comme ceci:
SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders
GROUP BY Customer,OrderDate

0 commentaires:

Post a Comment

HELLO VISITORS THANKS FOR YOUR VISIT AND COMMENT