Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

SQL - Tri et regroupement

SQL - Tri des résultats Encyclopédie


Tri des résultats

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  

  • La sélection de toutes les colonnes de la table trièes par ordre croissant de l'attribut Marque se fait par l'instruction :
    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

  • La sélection de toutes les colonnes de la table trièes par ordre croissant de l'attribut Marque, puis par ordre décroissant du compteur, se fait par l'instruction :
    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

Regroupement de résultats

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 :

  • AVG: Calcule la moyenne d'une colonne (ou de chaque regroupement si elle est couplée à la clause GROUP BY)
  • COUNT: Calcule le nombre de lignes d'une table (ou de chaque regroupement ...)
  • MAX: Calcule la valeur maximale d'une colonne (ou de chaque regroupement ...)
  • MIN: Calcule la valeur minimale colonne (ou de chaque regroupement ...)
  • SUM: Effectue la somme des valeurs d'une colonne (ou de chaque regroupement ...)
Soit la table VOITURE ci-dessus :
  • L'affichage des moyennes des compteurs par marque se fait par l'instruction :
    SELECT Marque, AVG(Compteur) AS Moyenne FROM VOITURE
    GROUP BY Marque

    Marque Moyenne
    Renault 63816.6
    Peugeot 132550
    Ford  

La clause HAVING va de pair avec la clause GROUP BY, elle permet d'appliquer une restriction sur les groupes créés grâce à la clause GROUP BY.
  • L'affichage des moyennes des compteurs non nulles regroupées par marque se fait par l'instruction :
    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.

Discussions pertinentes trouvées dans le forum

23/11 14h41 sql calculer total [SQL] comment calculer un total ? Développement 25/11 18h58->Riwalenn24
17/12 14h24 compter points tableau php sql Compter les points dans un tableau en PHP/SQL Webmastering 21/12 16h48->sweetmemories16
30/10 13h34 sql server import export donnees [MS SQL Server] import /export de donnees Windows 31/10 14h57->sebsauvage14
04/07 16h47 requete sql aide requete SQL Développement 05/07 15h26->antic8013
01/09 21h49 php requette sql [PHP] problème de requette SQL Webmastering 02/09 16h07->boss021112
01/09 16h50 nb enregistrement sql Nb d'enregistrement sql Développement 02/09 01h16->kinder.surprise10
01/03 08h43 sql mot clef pb sql : recherche par mot clef Développement 01/03 10h42->g_ni9
06/07 16h40 sql server vb.net detail sql server et vb.net en detail Développement 25/07 18h06->chaicoo49
06/09 11h39 sql % [SQL] % ne fonctionne pas !? Développement 07/09 14h16->Riwalenn9
01/03 09h45 sql lire champs uns autres [SQL] Lire champs les uns apres les autres Webmastering 02/03 08h13->Yann9
Discussion fermée Problème résolu SQL Plus de discussions sur « SQL »

Ce document intitulé « SQL - Tri et regroupement » issu de l'encyclopédie informatique Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.