Database
 sql >> Base de données >  >> RDS >> Database

GROUPER PAR vs ORDRE PAR

La clause GROUP BY et la clause ORDER BY dans SQL sont utilisées pour organiser les données obtenues par les requêtes SQL. La différence importante entre la clause GROUP BY et la clause ORDER BY est que la clause GROUP BY est appliquée lorsque nous voulons utiliser une fonction d'agrégation dans une requête SQL sur plusieurs ensembles de lignes. En revanche, la clause ORDER BY est appliquée lorsque nous voulons recevoir les données obtenues par la requête dans l'ordre trié. Avant de passer aux tableaux de comparaison, nous allons d'abord comprendre ces clauses SQL.

Clause GROUPER PAR

L'instruction GROUP BY dans SQL utilise des requêtes pour organiser les données dans les valeurs d'attribut. Habituellement, nous utilisons la clause GROUP BY avec l'instruction SELECT. Nous devons toujours placer la clause GROUP BY après la clause WHERE. De plus, il est également rythmé avant la clause ORDER BY.

Nous pouvons souvent utiliser la clause GROUP BY avec des fonctions d'agrégation telles que SUM, AVG, MIN, MAX et COUNT pour produire une sortie à partir de la base de données. La requête pour la clause GROUP BY est une requête groupée et elle renvoie une seule ligne pour chaque objet groupé.

Vous trouverez ci-dessous la syntaxe pour utiliser la clause GROUP BY dans une requête SQL

SELECT COLUMNNAME, FUNCTION(COLUMNNAME) FROM TABLENAME WHERE CONDITION GROUP BY COLUMNNAME;

Comprenons la clause GROUP BY à l'aide de quelques exemples. Considérez les tableaux suivants avec les enregistrements donnés.

Tableau :Employés

ID EMPLOYEE FIRST_NAME LAST_NAME SALAIRE VILLE DÉPARTEMENT MANAGERID WORKING_HOURS GENRE
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1 12 F
1002 VAIBHAV SHARMA 60000 NOÏDA ORACLE 1 9 M
1003 NIKHIL VANI 50000 JAIPUR FMW 2 10 M
2001 PRACHI SHARMA 55500 CHANDIGAR ORACLE 1 10 F
2002 BHAVESH JAIN 65500 PUNE FMW 2 12 M
2003 RUCHIKA JAIN 50000 Bombay TEST 4 9 F
3001 PRANOTI SHENDE 55500 PUNE JAVA 3 9 F
3002 ANUJA 50500 JAIPUR FMW 2 9 F
3003 DEEPAM JAUHARI 58500 Bombay JAVA 3 12 M
4001 RAJESH GOUD 60500 Bombay TEST 4 10 M

Exemple 1 : Supposons que nous voulions connaître le salaire total des employés dans une ville particulière pour les données ci-dessus. Pour ce faire, nous allons exécuter la requête ci-dessous comme suit :

SELECT CITY, SUM(SALARY) FROM EMPLOYEES GROUP BY CITY;

Cette requête a initialement formé un résultat qui a regroupé la ville. Ensuite, la SOMME fonction est effectuée sur chaque groupe de villes, et enfin, nous obtiendrons les résultats souhaités comme indiqué ci-dessous :

Exemple 2 : Supposons que nous voulions connaître le salaire maximum des employés dans un département particulier pour les données ci-dessus. Pour ce faire, nous allons exécuter la requête ci-dessous comme suit :

SELECT DEPARTMENT, MAX(SALARY) FROM EMPLOYEES GROUP BY DEPARTMENT;

Cette requête a d'abord formé un résultat qui a regroupé le département. Ensuite, le MAX fonction est effectuée sur chaque groupe du département, et enfin, nous obtiendrons les résultats souhaités comme indiqué ci-dessous :

Clause ORDRE PAR

La clause GROUP BY et la clause ORDER BY peuvent être utilisées avec l'instruction SELECT. Dans les requêtes SQL, nous avons utilisé la clause ORDER BY pour trier les enregistrements renvoyés par la requête par ordre croissant ou décroissant. Si nous ne mentionnions pas l'ordre de tri, tout le résultat serait trié par défaut dans l'ordre croissant.

Vous trouverez ci-dessous la syntaxe pour utiliser la clause ORDER BY dans une requête SQL

SELECT * FROM TABLENAME ORDER BY [ASC | DESC];

Comprenons la clause ORDER BY à l'aide de quelques exemples. Considérez les tableaux suivants avec les enregistrements donnés.

Tableau :Employés

ID EMPLOYEE FIRST_NAME LAST_NAME SALAIRE VILLE DÉPARTEMENT MANAGERID WORKING_HOURS GENRE
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1 12 F
1002 VAIBHAV SHARMA 60000 NOÏDA ORACLE 1 9 M
1003 NIKHIL VANI 50000 JAIPUR FMW 2 10 M
2001 PRACHI SHARMA 55500 CHANDIGAR ORACLE 1 10 F
2002 BHAVESH JAIN 65500 PUNE FMW 2 12 M
2003 RUCHIKA JAIN 50000 Bombay TEST 4 9 F
3001 PRANOTI SHENDE 55500 PUNE JAVA 3 9 F
3002 ANUJA 50500 JAIPUR FMW 2 9 F
3003 DEEPAM JAUHARI 58500 Bombay JAVA 3 12 M
4001 RAJESH GOUD 60500 Bombay TEST 4 10 M

Exemple 1 : Supposons que nous voulions organiser le résultat dans l'ordre trié, croissant ou décroissant, en fonction de la colonne des prénoms. Dans ce cas, nous aimerions utiliser la clause ORDER BY pour obtenir le résultat. Pour ce faire, nous allons exécuter la requête ci-dessous comme suit :

SELECT * FROM EMPLOYEES ORDER BY FIRST_NAME ASC;

Différence clé entre GROUP BY et ORDER BY

Voici les points qui différencient les clauses GROUP BY et ORDER BY :

  • L'instruction GROUP BY dans SQL est utilisée pour regrouper les enregistrements en fonction d'une valeur similaire dans une colonne particulière. D'autre part, la clause ORDER BY en SQL est utilisée pour trier les résultats d'affichage par ordre croissant ou décroissant.
  • Lors de l'exécution d'une requête à l'aide de la clause GROUP BY dans une requête SQL, il est obligatoire d'utiliser la fonction d'agrégation. D'autre part, lors de l'utilisation de la clause ORDER BY dans SQ, il n'est pas obligatoire d'utiliser une fonction d'agrégation.
  • La clause GROUP BY est toujours placée dans la requête SQL après la clause WHERE mais avant la clause ORDER BY. Par contre, la clause ORDER BY est toujours placée après la clause GROUP BY.

Tableau comparatif

SR.NO GROUPER PAR TRIER PAR
1 La clause GROUP BY est utilisée pour regrouper les lignes avec des valeurs similaires. La clause ORDER BY est utilisée pour trier le résultat par ordre décroissant ou croissant
2 Il contrôle la présentation des lignes Il contrôle la présentation des colonnes
3 LA clause GROUP BY est toujours placée avant la clause ORDER BY. La clause ORDER BY est toujours placée après la clause GROUP BY.
4 Il est obligatoire d'utiliser une fonction d'agrégation Pas obligatoire pour utiliser une fonction d'agrégation
5 L'attribut ne peut pas être sous la fonction d'agrégation dans l'instruction GROUP BY. L'attribut peut se trouver sous la fonction d'agrégation dans l'instruction ORDER BY.