08. Ordonner et limiter
ORDER BY et LIMIT sont deux clauses SQL qui organisent les résultats d'une recherche. ORDER BY trie les résultats (par exemple du plus petit au plus grand), tandis que LIMIT choisit combien de résultats afficher. Ces deux commandes peuvent être utilisées ensemble pour trier des ventes par montant et afficher seulement les 10 plus importantes.ORDER BY
La clause ORDER BY est utilisée pour trier les résultats d'une requête en fonction d'une ou plusieurs colonnes. Elle permet de spécifier l'ordre de tri, qu'il soit croissant (ASC) ou décroissant (DESC).
SELECT colonnes
FROM table
WHERE condition
ORDER BY colonne DESC;Si l'option DESC n'est pas spécifiée, la sortie sera triée en ordre croissant. L'ordre peut également se faire sur plusieurs colonnes :
SELECT colonnes
FROM table
WHERE condition
ORDER BY colonne1 DESC, colonne2 ASC, colonne3 DESC ;Ce code SQL sélectionne des colonnes d'une table, filtre les lignes selon une condition, puis trie les résultats en ordre décroissant par colonne1, croissant par colonne2, et décroissant par colonne3.
Question 8.1
Que fait cette requête? Pour accéder à la console SQL.
SELECT customerID, productID, "VolKilo (COPA)"
FROM perform21
ORDER BY "VolKilo (COPA)" DESCQuestion 8.2
Ecrire une requête permettant d'extraire les identifiants des clients et des produits ainsi que le volume en kilos (VolKilo (COPA)) de la table perform21 pour les volumes supérieurs à 500 000 kg, triés le volume en kilos en ordre décroissant et par date en ordre croissant. Pour accéder à la console SQL.
La clause ORDER BY est particulièrement utile lorsque tu souhaites visualiser les résultats de ta requête dans un ordre spécifique, ce qui facilite la lecture et l'interprétation des données.
LIMIT
La clause LIMIT est utilisée pour limiter le nombre de lignes en sortie. Après l'insertion de la clause LIMIT il faut indiquer le nombre de lignes que tu souhaites voir affichées.
/* Affiche les 10 premières lignes de la table perform21 */
SELECT *
FROM perform21
LIMIT 10La clause LIMIT est particulièrement utile pour effectuer des requêtes qui pourraient potentiellement retourner un grand nombre de résultats et que tu souhaites juste en afficher qu'une partie (pour des raisons de performance ou de lisibilité).
Il est important de noter que la syntaxe pour utiliser LIMIT peut varier légèrement selon le système de gestion de base de données que tu utilises (par exemple, MySQL, PostgreSQL, SQLite). La plupart des systèmes de gestion de bases de données supportent la clause LIMIT mais certains peuvent utiliser d'autres termes tels que TOP ou FETCH FIRST pour atteindre le même objectif.
La combinaison de ORDER BY et LIMIT est couramment utilisée pour extraire des résultats de type "Top N" ou "Bottom N". Par exemple le Top 5 des commandes les plus volumineuses ou le Top 10 des commandes les moins rentables.
/* Affiche les 3 commandes les plus volumineuses. */
SELECT customerID, productID, "VolKilo (COPA)", Date
FROM perform21
ORDER BY "VolKilo (COPA)" DESC
LIMIT 3En ajustant le critère de tri (en ne mettant rien ou en utilisant ASC au lieu de DESC), tu peux obtenir les n dernières lignes.
Question 8.3
Utilise la table perform21 située dans la base de données controlGest pour afficher les 3 plus grosses commandes en terme de marge réalisée? (GP (COPA) ou la différence entre NOS (COPA) et COGS (COPA) peuvent être utilisés).
SQL Console
| Category | Num | Sales Usd |
|---|---|---|
| ABC | 123 | $26.4M |