SQL-Tri et regroupement de résultats
Certaines commandes SQL permettent d'effectuer des calcules assez facilement.
Dans les exemples qui suivent, nous utiliserons la table ci-dessous comme référence.
| Table COMMENTAIRES | |||
| id | pseudo | commentaire | age |
| 1 | toto | Commentaire de toto | 12 |
| 2 | tata | Commentaire de tata | 41 |
| 3 | titi | Commentaire de titi | 24 |
| 4 | toto | Commentaire 2 de toto | 12 |
| 5 | zaza | Commentaire de zaza | 36 |
| 6 | tutu | Commentaire de tutu | 10 |
Clause AVG
La clause AVG permet de calculer la moyenne d'un champ. On utilise la fonction AS suivit du nom que vous voullez pour créer une colonne(champ) temporaire qui permet d'exécuter et de récupérer le résultat de la requête.
En résumé : AVG(nom_de_mon_champ_a_calculer) AS un_champ_bidon = moyenne de nom_de_mon_champ_a_calculer
SELECT AVG(age) AS Moyenne FROM COMMENTAIRES
Le résultat de cette requête nous donnera donc une Moyenne de 22.5 qui correspond à la somme total du champ "age" (135) divisé par le nombre d'entrée (6).
La clause AVG peut être également utilisée avec la clause GROUP BY pour calculer la moyenne d'un regroupement.
SELECT id, pseudo, AVG(age) AS Moyenne FROM COMMENTAIRES GROUP BY pseudo
Le résultat de cette requête nous donne donc le tableau ci-dessous:
| Table COMMENTAIRES | ||
| id | pseudo | Moyenne |
| 2 | tata | 41 |
| 3 | titi | 24 |
| 1 | toto | 12 |
| 6 | tutu | 10 |
| 5 | zaza | 36 |
On constate bien que la moyenne par regroupement du champ "pseudo" a été éffectué puisque le pseudo "toto" utilisé 2 fois dans notre table initiale, nous retourne qu'un seul enregistrement avec une moyenne de 12, soit (12+12)/2.
Clause COUNT
La clause COUNT permet de calculer le nombre de lignes ou d'enregistrements dans une table.
SELECT COUNT(id)FROM COMMENTAIRES
Le résultat de cette requête nous donnera donc le chiffre 6. En résumé, la clause COUNT(id) permet de compter le nombre d'entrée du champ ""id de la table "COMMENTAIRES".
La clause COUNT peut être également utilisée avec la clause GROUP BY.
Dans cette exemple, nous allons calculer le nombre d'entrée du champ "id" en regroupant chaque entrée par pseudo utilisé.
SELECT COUNT(id), pseudo FROM COMMENTAIRES GROUP BY pseudo
Le résultat de cette requête nous donne donc le tableau ci-dessous:
| COUNT(id) | pseudo |
| 1 | tata |
| 1 | titi |
| 2 | toto |
| 1 | tutu |
| 1 | zaza |
Une fois de plus, on constate bien que le calcul a été effectué puisque la clause COUNT(id) utilisée nous retourne bien le nombre de fois que chaque pseudo a été utilisé.
Clause MAX
La clause MAX permet de calculer la valeur MAXIMALE d'un champ. Supposons que vous souhaitez savoir qu'elle est le plus agé de vos utilisateurs dans votre table "COMMENTAIRES".
SELECT MAX(age)FROM COMMENTAIRES
Le résultat de cette requête nous donnera donc le chiffre 41.
La clause MAX peut être également utilisée avec la clause GROUP BY.
La requête qui suit risque de vous faire cuire les neurones
...
SELECT MAX(age), id, pseudo FROM COMMENTAIRES GROUP BY pseudo ORDER BY MAX(age) DESC
J'avais prévenu
!!
En faite cette requête n'est pas si compliqué que ça et je vais vous expliqué ce qu'elle fait.
On demande tout simplement de sélectionner l'âge maximale du champ "age", l'id et le pseudo de la table COMMENTAIRES en regroupent les résultats par pseudo et en les classent par odre d'âge Descendant.
Ce qui nous donne comme résultat le tableau ci-dessous:
| MAX(age) | id | pseudo |
| 41 | 2 | tata |
| 36 | 5 | zaza |
| 24 | 3 | titi |
| 12 | 1 | toto |
| 10 | 6 | tutu |
Clause MIN
La clause MIN est l'inverse de la clause MAX. La clause MIN permet donc de calculer la valeur MINIMALE d'un champ.
SELECT MIN(age) FROM COMMENTAIRES
Le résultat de cette requête nous donnera donc le chiffre 10. Tout comme la clause MAX, elle peut être utilisée avec la clause GROUP BY.
Clause SUM
La clause SUM permet de calculer la somme des valeurs d'un champ.
Supposons que l'ont veuillent calculer la somme total des âges du champ "age".
SELECT SUM(age) FROM COMMENTAIRES
Le résultat de cette requête nous donc le chiffre 135, sinon dit, l'addition de tous les âges.
La clause SUM peut également être utilisée avec la clause GROUP BY.
SELECT SUM(age),id, pseudo FROM COMMENTAIRES GROUP BY pseudo ORDER BY id ASC
Cette requête permet de calculer la somme total des âges du champs "age" en les regroupant par pseudo, de sélectionner l'id et le pseudo et d'afficher le résultat par ordre croissant.
Ce qui nous donne comme résultat le tableau ci-dessous:
| MAX(age) | id | pseudo |
| 24 | 1 | toto |
| 41 | 2 | tata |
| 24 | 3 | titi |
| 36 | 5 | zaza |
| 10 | 6 | tutu |

Signaler une erreur
SQL-Clause WHERE et conditions
Commandes SQL




