Différence entre GROUP BY et ORDER BY

image_pdfimage_print

Quelle est la différence entre GROUP BY et ORDER BY ? – Les clauses GROUP BY et ORDER BY les deux sont utilisées pour organiser les données. La différence clé entre la clause Group By et Order By est que la clause Group By est utilisée lorsque nous souhaitons appliquer la fonction d’agrégation sur plusieurs tuples et que la clause Order By est utilisée lorsque nous voulons trier les données obtenues par une requête.
 
Différence entre DELETE et TRUNCATEDifférence entre DELETE et TRUNCATEQuelle est la différence entre DELETE et TRUNCATE ? – Dans SQL, il y a plusieurs façon pour supprimer les lignes d’une table. Vous pouvez…Lire plus

Définition du ORDER BY

ORDER BY: triez les données par ordre croissant ou décroissant, considérons la table CLIENTS suivante:

+----+----------+-----+-----------+----------+
| ID | NOM      | AGE | ADRESSE   | SALAIRE  |
+----+----------+-----+-----------+----------+
|  1 | Alex     |  21 | Paris     |  9000.00 |
|  2 | Bob      |  15 | Rabat     |  2500.00 |
|  3 | Ali      |  13 | Casablanca|  3000.00 |
|  4 | Emily    |  26 | Lyon      |  4500.00 |
|  5 | Thomas   |  29 | Chingaho  |  7500.00 |
|  6 | Sora     |  22 | Wigar     |  1500.00 |
+----+----------+-----+-----------+----------+

Voici un exemple qui trierait le résultat par ordre croissant selon le NOM du client:

SQL> SELECT * FROM CLIENTS ORDER BY NOM;

Cela produirait le résultat suivant:

+----+----------+-----+-----------+----------+
| ID | NOM      | AGE | ADRESSE   | SALAIRE  |
+----+----------+-----+-----------+----------+
|  1 | Alex     |  21 | Paris     |  9000.00 |
|  3 | Ali      |  13 | Casablanca|  3000.00 |
|  2 | Bob      |  15 | Rabat     |  2500.00 |
|  4 | Emily    |  26 | Lyon      |  4500.00 |
|  6 | Sora     |  22 | Wigar     |  1500.00 |
|  5 | Thomas   |  29 | Chingaho  |  7500.00 |
+----+----------+-----+-----------+----------+
Différence entre HAVING et WHEREDifférence entre HAVING et WHERELes clauses WHERE et HAVING sont principalement utilisées dans des requêtes SQL, elles permettent de limiter une résultat en utilisant un prédicat spécifique. La principale…Lire plus

 

Définition du GROUP BY

GROUP BY: organisez des données identiques en groupes. Maintenant, la table CLIENTS a les enregistrements suivants avec des noms en double:

+----+----------+-----+-----------+----------+
| ID | NOM      | AGE | ADRESSE   | SALAIRE  |
+----+----------+-----+-----------+----------+
|  1 | Alex     |  21 | Paris     |  9000.00 |
|  2 | Alex     |  24 | Lyon      |  9000.00 |
|  3 | Alex     |  31 | Niort     |  9000.00 |
|  4 | Bob      |  15 | Rabat     |  2500.00 |
|  5 | Bob      |  25 | Lile      |  2500.00 |
|  6 | Ali      |  13 | Casablanca|  3000.00 |
|  7 | Emily    |  26 | Lyon      |  4500.00 |
|  8 | Thomas   |  29 | Chingaho  |  7500.00 |
+----+----------+-----+-----------+----------+

Si on veut souhaiter regrouper les noms identiques en un seul nom, la requête GROUP BY sera la suivante:

SQL> SELECT * FROM CLIENTS GROUP BY NOM;

Cela produirait le résultat suivant: (pour les noms identiques, il choisirait le dernier et trierait enfin la colonne par ordre croissant)

+----+----------+-----+-----------+----------+
| ID | NOM      | AGE | ADRESSE   | SALAIRE  |
+----+----------+-----+-----------+----------+
|  3 | Alex     |  31 | Niort     |  9000.00 |
|  6 | Ali      |  13 | Casablanca|  3000.00 |
|  5 | Bob      |  25 | Lile      |  2500.00 |
|  7 | Emily    |  26 | Lyon      |  4500.00 |
|  8 | Thomas   |  29 | Chingaho  |  7500.00 |
+----+----------+-----+-----------+----------+

Une clause GROUP BY fonctionne sur les lignes renvoyées par une requête en récapitulant des lignes identiques dans un groupe unique/distinct et renvoie une seule ligne avec le résumé pour chaque groupe, en utilisant la fonction d’agrégation appropriée dans SELECT, comme COUNT (), SUM. (), MIN (), MAX (), AVG (), etc.

Maintenant, si on veut connaître le montant total du salaire de chaque client, la requête GROUP BY sera la suivante:

SQL> SELECT NOM, SUM(SALAIRE) FROM CLIENTS GROUP BY NOM;

Cela produirait le résultat suivant: (somme des salaires qui ont des noms identiques et trie la colonne NOM après avoir supprimé les noms identiques)

+---------+-------------+
| NOM     | SUM(SALAIRE)|
+---------+-------------+
| Alex    |   270000.00 |
| Ali     |     3000.00 |
| Bob     |     5000.00 |
| Emily   |     4500.00 |
| Thomas  |     7500.00 |
+---------+-------------+
Différence entre GRANT et REVOKEDifférence entre GRANT et REVOKELa principale différence entre GRANT et REVOKE est que GRANT donne un privilège à l’utilisateur alors que REVOKE reprend le privilège accordé à l’utilisateur. SQL…Lire plus
Conclusion:

Si vous souhaitez former un groupe de tuples, vous devez utiliser la clause Group By. Si vous souhaitez organiser les données d’une seule colonne ou de plusieurs colonnes dans l’ensemble des tuples dans l’ordre croissant ou décroissant, vous devez utiliser la clause Order By.
 
 

Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *