Recommandé, 2024

Choix De L'Éditeur

Différence entre Group By et Order By dans SQL

SQL permet d'organiser les données obtenues par la requête. Nous avons deux clauses pour organiser les données obtenues à partir de la requête qui sont des clauses Group By et Order By. Le point qui distingue les clauses Group By et Order By est que la clause Group By est utilisée lorsque nous souhaitons appliquer la fonction d'agrégation à plusieurs ensembles de tuples et que la clause Order By est utilisée pour trier les données obtenues par la requête. Laissez-nous discuter des différences entre les clauses Group By et Order By à l’aide du tableau de comparaison présenté ci-dessous.

Tableau de comparaison

Base de comparaisonPar groupeCommandé par
De baseGroup By est utilisé pour former le groupe de l'ensemble des tuples.Order By est utilisé pour organiser les données obtenues à la suite d'une requête sous forme triée.
AttributL'attribut sous la fonction Aggregate ne peut pas être dans la clause Group By.L'attribut sous agrégat peut être dans Order By Clause.
SolFait sur la base de la similarité parmi les valeurs d'attribut.Fait sur le terrain d'ordre croissant et décroissant.

Définition du groupe par clause

Les fonctions d'agrégation comme avg, min, max, sum, count sont appliquées au seul ensemble de tuples. Au cas où, si vous souhaitez appliquer les fonctions d'agrégation au groupe de l'ensemble de tuples, nous avons la clause Group by pour cela. La clause Group by regroupe les nuplets ayant la même valeur d'attribut.

Il y a une chose à retenir à propos de la clause Group By, assurez-vous que l' attribut sous la clause Group By doit apparaître dans la clause SELECT mais pas sous une fonction d'agrégat . Si la clause Group By contient un attribut qui n'est pas sous la clause SELECT ou s'il est sous la clause SELECT mais sous la fonction d'agrégat, la requête devient erronée. Par conséquent, nous pouvons dire que la clause Group By est toujours utilisée en collaboration avec la clause SELECT.

Prenons un exemple pour comprendre la clause Group By.

SELECT Department _ID, avg (salaire) comme avg_salary du groupe d'enseignants par département_ID.

Vous pouvez voir que, initialement, un résultat intermédiaire est formé qui a regroupé les départements.

Ensuite, la fonction d'agrégation avg est appliquée à chaque groupe de départements et le résultat est présenté ci-dessous.

Définition de commande par clause

La clause Order By est utilisée pour afficher les données obtenues par une requête dans l'ordre trié. Comme la clause Group By, la clause Order By est également utilisée en collaboration avec la clause SELECT. Si vous ne mentionnez pas l'ordre de tri, la clause Order By trie les données dans l'ordre croissant. Vous pouvez spécifier l'ordre croissant ascendant et l'ordre décroissant desc .

Laissez-nous comprendre le fonctionnement de la clause Order By à l'aide de l'exemple suivant. Nous avons une table Enseignant et je vais appliquer le tri à deux colonnes Département_Id et Salaire de la table Enseignant.

Sélectionnez Department_ID, Salary From Teacher Order By Department_Id asc, Salary desc.

Vous pouvez voir qu’en premier lieu, il organise le département _ID par ordre croissant, puis les salaires du même département dans un ordre décroissant.

Différences clés entre Group By et Order By

  1. La clause Group By regroupe l'ensemble des n-uplets dans une relation sous la clause SELECT. D'autre part, la clause Order By trie le résultat de la requête par ordre croissant ou décroissant.
  2. L'attribut sous la fonction d'agrégat ne peut pas être sous la clause Group By, tandis que l'attribut sous la fonction d'agrégat peut être là sous la clause Order By.
  3. Le groupement des n-uplets est effectué sur la base de la similarité entre les valeurs d'attribut des n-uplets. D'autre part, l'ordre ou le tri est effectué sur la base d'un ordre croissant ou décroissant.

Conclusion:

Si vous souhaitez former le groupe de l'ensemble de tuples, vous devez utiliser la clause Group By. Si vous souhaitez organiser les données d'une seule colonne ou de plusieurs colonnes du jeu de tuples dans l'ordre croissant ou décroissant, la clause Order By doit être utilisée.

Top