Cet article explique la présentation complète des clauses GROUP BY et ORDER BY. Ils sont principalement utilisés pour organiser les données obtenues par les requêtes SQL. La différence entre ces clauses est l'un des endroits les plus courants où l'on se retrouve bloqué lors de l'apprentissage. SQL . La principale différence entre eux est que la clause GROUP BY est applicable lorsque nous souhaitons utiliser des fonctions d'agrégation sur plusieurs ensembles de lignes. La clause ORDER BY est applicable lorsque l'on souhaite récupérer les données obtenues par une requête dans l'ordre de tri . Avant de faire la comparaison, nous connaîtrons d’abord ces clauses SQL.
Clause ORDER PAR
La clause ORDER BY est utilisée dans les requêtes SQL pour trier les données renvoyées par une requête par ordre croissant ou décroissant. Si nous omettons l'ordre de tri, il trie par défaut le résultat résumé dans l'ordre croissant. La clause ORDER BY, comme la clause GROUP BY, peut être utilisée conjointement avec l'instruction SELECT. ASC désigne l'ordre croissant, tandis que DESC désigne l'ordre décroissant.
Voici la syntaxe pour utiliser la clause ORDER BY dans une instruction SQL :
programme principal en java
SELECT expressions FROM tables [WHERE conditions] ORDER BY expression [ ASC | DESC ];
Comprenons comment fonctionne la clause ORDER BY à l'aide de l'exemple suivant. Supposons que nous ayons une table développeur qui contient les données suivantes :
On constate que ces résultats ne sont pas affichés de manière organisée. Supposons que nous souhaitions organiser les résultats par ordre croissant ou décroissant en fonction du colonne d'état . Dans ce cas, nous aurions besoin de la commande ORDER BY pour obtenir le résultat souhaité. Nous pouvons le faire en exécutant la commande comme suit :
mysql> SELECT D_name, D_state, D_salary FROM developers ORDER BY D_state ASC;
Voici le résultat où nous obtiendrons les résultats souhaités :
Clause GROUPE PAR
La clause GROUP BY est utilisée dans les requêtes SQL pour organiser les données ayant les mêmes valeurs d'attribut. Habituellement, nous l'utilisons avec l'instruction SELECT . Il ne faut jamais oublier que nous devons placer la clause GROUP BY après la clause WHERE . De plus, il est rythmé avant la clause ORDER BY.
Nous pouvons souvent utiliser cette clause en collaboration avec des fonctions d'agrégation telles que SUM, AVG, MIN, MAX et COUNT pour produire des rapports récapitulatifs à partir de la base de données. Il est important de se rappeler que l'attribut de cette clause doit apparaître dans la clause SELECT, et non sous une fonction d'agrégation. Si nous le faisons, la requête serait incorrecte. Par conséquent, la clause GROUP BY est toujours utilisée conjointement avec la clause SELECT. La requête pour la clause GROUP BY est une requête groupée et renvoie une seule ligne pour chaque objet groupé.
aws redshift
Voici la syntaxe pour utiliser la clause GROUP BY dans une instruction SQL :
SELECT column_name, function(column_name) FROM table_name WHERE condition GROUP BY column_name;
Comprenons comment fonctionne la clause GROUP BY à l'aide d'un exemple. Ici, nous allons le démontrer avec le même tableau.
Supposons que nous voulions savoir salaire moyen d'un développeur dans un état particulier et organisez les résultats par ordre décroissant en fonction de la colonne d'état. Dans ce cas, nous aurions besoin des commandes GROUP BY et ORDER BY pour obtenir le résultat souhaité. Nous pouvons le faire en exécutant la commande comme suit :
mysql> SELECT D_state, avg(D_salary) AS salary FROM developers GROUP BY D_state ORDER BY D_state DESC;
Cette requête formait initialement un résultat intermédiaire qui regroupait l'état. Ensuite, le MOYENNE La fonction est exécutée sur chaque groupe d'états, puis trier le résultat par ordre décroissant, et enfin, nous obtiendrons les résultats souhaités comme indiqué ci-dessous :
Principales différences entre GROUP BY et ORDER BY
Voici les principales distinctions entre les clauses Group By et Order By :
- La clause Group By est utilisée pour regrouper les données en fonction de la même valeur dans une colonne spécifique. La clause ORDER BY, quant à elle, trie le résultat et l'affiche par ordre croissant ou décroissant.
- Il est obligatoire d'utiliser la fonction d'agrégation pour utiliser le Group By. En revanche, il n'est pas obligatoire d'utiliser la fonction d'agrégation pour utiliser le Order By.
- L'attribut ne peut pas être sous l'instruction GROUP BY sous la fonction d'agrégation, alors que l'attribut peut être sous l'instruction ORDER BY sous la fonction d'agrégation.
- La clause Group By contrôle la présentation des tuples, ce qui signifie que le regroupement est effectué en fonction de la similarité entre les valeurs d'attribut de la ligne. En revanche, la clause ORDER BY contrôle la présentation des colonnes, ce qui signifie que le classement ou le tri est effectué en fonction des valeurs d'attribut de la colonne, par ordre croissant ou décroissant.
- GROUP BY est toujours placé après la clause WHERE mais avant l'instruction ORDER BY. D'un autre côté, ORDER BY est toujours utilisé après l'instruction GROUP BY.
Tableau de comparaison GROUP BY et ORDER BY
Le tableau comparatif suivant explique rapidement leurs principales différences :
SN | PAR GROUPE | COMMANDÉ PAR |
---|---|---|
1. | Il est utilisé pour regrouper les lignes qui ont les mêmes valeurs. | Il trie le jeu de résultats par ordre croissant ou décroissant. |
2. | Cela peut être autorisé dans l'instruction CREATE VIEW. | Ce n'est pas autorisé dans l'instruction CREATE VIEW |
3. | Il contrôle la présentation des lignes. | Il contrôle la présentation des colonnes. |
4. | L'attribut ne peut pas être sous la fonction d'agrégation sous l'instruction GROUP BY. | L'attribut peut être sous la fonction d'agrégation sous l'instruction ORDER BY. |
5. | Il est toujours utilisé avant la clause ORDER BY dans l'instruction SELECT. | Il est toujours utilisé après la clause GROUP BY dans l'instruction SELECT. |
6. | Il est obligatoire d'utiliser des fonctions d'agrégation dans le GROUP BY. | Il n'est pas obligatoire d'utiliser des fonctions d'agrégation dans ORDER BY. |
7. | Ici, le regroupement est effectué en fonction de la similarité entre les valeurs d'attribut de la ligne. | Ici, l'ensemble de résultats est trié en fonction des valeurs d'attribut de la colonne, par ordre croissant ou décroissant. |
Conclusion
Les clauses GROUP BY et ORDER BY sont comparées dans cet article. Les deux clauses constituent des fonctionnalités de base de données SQL extrêmement utiles. Lorsque l'on souhaite former un groupe de lignes, on utilise la clause GROUP BY. Si nous souhaitons organiser les données par ordre croissant ou décroissant en fonction d'une colonne particulière, nous utilisons la clause ORDER BY. Ils n’ont aucune relation car tous deux sont utilisés à deux fins différentes. Cependant, nous pouvons les combiner pour répondre à un objectif particulier ou les utiliser individuellement en fonction des circonstances. Nous ne pouvons utiliser ces clauses qu'avec l'instruction SELECT.
comment déréférencer un pointeur en c