Il est possible en SQL d'organiser les résultats grâce à
la clause ORDER BY. La clause ORDER BY est suivie des mots clés ASC
ou DESC, qui précisent respectivement si le tri se fait de manière croissante (par défaut)
ou décroissante. Le classement se fait sur des nombres ou des chaines de caractères.
Prenons l'exemple de la table voiture :
| Marque | Modele | Serie | Numero | Compteur |
|---|---|---|---|---|
| Renault | 18 | RL | 4698 SJ 45 | 123450 |
| Renault | Kangoo | RL | 4568 HD 16 | 56000 |
| Renault | Kangoo | RL | 6576 VE 38 | 12000 |
| Peugeot | 106 | KID | 7845 ZS 83 | 75600 |
| Peugeot | 309 | chorus | 7647 ABY 82 | 189500 |
| Ford | Escort | Match | 8562 EV 23 |
SELECT * FROM VOITURE ORDER BY Marque ASC
| Marque | Modele | Serie | Numero | Compteur |
|---|---|---|---|---|
| Ford | Escort | Match | 8562 EV 23 | |
| Peugeot | 106 | KID | 7845 ZS 83 | 75600 |
| Peugeot | 309 | chorus | 7647 ABY 82 | 189500 |
| Renault | 18 | RL | 4698 SJ 45 | 123450 |
| Renault | Kangoo | RL | 4568 HD 16 | 56000 |
| Renault | Kangoo | RL | 6576 VE 38 | 12000 |
SELECT * FROM VOITURE ORDER BY Marque ASC, Compteur DESC
| Marque | Modele | Serie | Numero | Compteur |
|---|---|---|---|---|
| Ford | Escort | Match | 8562 EV 23 | |
| Peugeot | 309 | chorus | 7647 ABY 82 | 189500 |
| Peugeot | 106 | KID | 7845 ZS 83 | 75600 |
| Renault | 18 | RL | 4698 SJ 45 | 123450 |
| Renault | Kangoo | RL | 4568 HD 16 | 56000 |
| Renault | Kangoo | RL | 6576 VE 38 | 12000 |
Il peut être intéressant de regrouper des résultats afin de faire des opérations par groupe (opérations statistiques par exemple). Cette opération se réalise à l'aide de la clause GROUP BY, suivie du nom de chaque colonne sur laquelle on veut effectuer des regroupements.
Les principales fonctions pouvant être effectuées par groupe sont :
SELECT Marque, AVG(Compteur) AS Moyenne FROM VOITURE GROUP BY Marque
| Marque | Moyenne |
|---|---|
| Renault | 63816.6 |
| Peugeot | 132550 |
| Ford |
SELECT Marque, AVG(Compteur) AS Moyenne FROM VOITURE GROUP BY Marque HAVING Moyenne IS NOT NULL
| Marque | Moyenne |
|---|---|
| Renault | 63816.6 |
| Peugeot | 132550 |
| Remarquez l'utilisation de AS pour donner un nom à la colonne créée à l'aide de la fonction AVG. |