Flux rss
Bookmark Ajouter aux favoris / Partager

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.


Dernière modification le mardi 14 octobre 2008 à 17:40:30.Ce document intitulé « SQL - Tri » issu de 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.
Tri SQL ou Java (Résolu) Bonjour, Dans ma table sql j'ai ces colonnes : une CodeFrais1, une LibelleFrais1, une CodeFrais2 , une LibelleFrais2, une CodeFrais3, une LibelleFrais3, une CodeFrais4 et une LibelleFrais4. Je peux avoir par exemple -> CodeFrais1 = 16, CodeFrais2 =... www.commentcamarche.net/forum/affich-8105630-tri-sql-ou-java
PL/SQL - Introduction au langage PL/SQL Introduction au langage PL/SQL Le langage PL/SQL est un langage L4G (entendez par ce terme un langage de quatrième génération), fournissant une interface procédurale au SGBD Oracle. Le langage PL/SQL intègre parfaitement le langage SQL en lui... www.commentcamarche.net/contents/plsql/plsqlintro.php3
Télécharger SQL Script Builder SQL Script Builder est un programme qui permet de concevoir un script SQL au format MySql, MS SQL, Oracle, Pervasive ou PostgreSQL à partir d’une base de données. Ce script va déplacer toute ou partie des tables de la base de données concernée vers la... www.commentcamarche.net/telecharger/telecharger-34059733-sql-script-builder
Tri Shell -Recursive-Voici une procédure récursive qui permet de trier un tableau de n entiers en utilisant la méthode de tri Shell : Procedure Tri_Shell_Rec (Var t: TAB; n,h : integer); Var aux,i : integer; begin If h > 0 Then Begin If n > h... www.commentcamarche.net/faq/sujet-9008-tri-shell-recursive
Tri à bulles -récursivité-Voici une procédure récursive qui permet de trier un tableau de n entiers en utilisant la méthode de tri à bulles : Procedure Tri_bulles (var t : TAB; n : integer); Var i, aux : integer; Function Trier (t : TAB; n : integer) : Boolean; ... www.commentcamarche.net/faq/sujet-8855-tri-a-bulles-recursivite
Construction requete SQL et select multiple (Résolu)Bonjour à tous, Nouvelle question, et j'espère, la dernière. On va dire que j'abuse :) J'ai donc une page PHP dans la quelle s'affiche une liste d'adhérents. Cette liste est obtenue par la construction, on va dire dynamique, d'une requete SQL. Cette... www.commentcamarche.net/forum/affich-8504611-construction-requete-sql-et-select-multiple
PL/SQL : équivalent au continue ?!?Salut tout le monde, je recherche une petite instruction PL/SQL mais j'ai po l'impression que ça existe... Alors j'appelle CCM à la rescousse ;-) Une boucle du genre : FOR i in 1..10 LOOP IF pof(i)=2 THEN /* là je voudrais passer directement au i... www.commentcamarche.net/forum/affich-279133-pl-sql-equivalent-au-continue
Requette SQL et tri des champsBonjour tous le monde, je suis en train de faire une requette SQL sur mon forum qui est destinée sortir tous les champs d'un "theme" ordonnés en decroissant par rapport a la "date" et a l'"heure" : SELECT * FROM `forum` WHERE theme like "Annif de... www.commentcamarche.net/forum/affich-2167973-requette-sql-et-tri-des-champs
Télécharger SQL Server BackupSQL Server Backup est un outil de sauvegarde ou de restauration pour Microsoft SQL Server. Son assistant vous permettra de sauvegarder la base de données SQL Server sur le disque dur local, un dossier partagé du réseau ou sur un réseau distant. Facile... www.commentcamarche.net/telecharger/telecharger-34058935-sql-server-backup
Télécharger SQL QuerySQL Query est un éditeur SQL. Le programme prend en charge les bases suivantes : toutes les versions de SQL Server et MSDE y compris SQL Server 2005 et SQL Server 2005 Express. Il permet de créer et d'exécuter des requêtes par lots, de naviguer entre... www.commentcamarche.net/telecharger/telecharger-34058385-sql-query
Télécharger MS SQL MigratePour des raisons pratique ou quasiment professionnel, il est nécessaire de convertir des bases de données entre différents formats. Le principal, c’est qu’il n’y ait aucune perte de donnée lors de la conversion. MS SQL Migrate est... www.commentcamarche.net/telecharger/telecharger-34058211-ms-sql-migrate
Le langage SQLQu'appelle-t-on SQL? SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage de définition de données (LDD, ou en anglais DDL Data Definition Language), un langage de manipulation de données (LMD, ou en anglais DML,... www.commentcamarche.net/contents/sql/sqlintro.php3
SQL - Création de tableLe SQL, comportant un langage de définition de données (LDD), permet de créer des tables. Pour cela, il utilise le couple de mots clés CREATE TABLE. La création de tables Le création de tables se fait à l'aide du couple de mots-clés CREATE... www.commentcamarche.net/contents/sql/sqlcreate.php3
SQL - Commande SELECTLe langage de manipulation de données Le SQL est à la fois un langage de manipulation de données et un langage de définition de données. Toutefois, la définition de données est l'oeuvre de l'administrateur de la base de données, c'est pourquoi la... www.commentcamarche.net/contents/sql/sqlsel.php3