Quand utilisez-vous lequel en général? Les exemples sont fortement encouragés!
Je parle donc de MySql, mais je ne peux pas imaginer que le concept soit différent sur un autre SGBD
ORDER BY modifie l'ordre dans lequel les articles sont retournés.
GROUP BY agrégera les enregistrements par les colonnes spécifiées, ce qui vous permet d'exécuter des fonctions d'agrégation sur des colonnes non groupées (telles que SUM, COUNT, AVG, etc.).
ORDER BY modifie l'ordre dans lequel les articles sont retournés.
GROUP BY agrégera les enregistrements par les colonnes spécifiées, ce qui vous permet d'exécuter des fonctions d'agrégation sur des colonnes non groupées (telles que SUM, COUNT, AVG, etc.).
la source
age
colonne, avec Peters ayant des âges différents et la requête est SELECT NAME, AGE FROM TABLE GROUP BY NAME?ORDER BY: triez les données par ordre croissant ou décroissant.
Considérez le tableau CLIENTS :
Voici un exemple, qui trierait le résultat par ordre croissant par NOM:
Cela produirait le résultat suivant:
GROUP BY: organiser les données identiques en groupes.
Désormais, la table CUSTOMERS contient les enregistrements suivants avec des noms en double:
si vous souhaitez regrouper des noms identiques en un seul nom, la requête GROUP BY serait la suivante:
Cela produirait le résultat suivant: (pour des noms identiques, il choisirait le dernier et trierait finalement la colonne dans l'ordre croissant)
comme vous l'avez déduit qu'il ne sert à rien sans les fonctions SQL comme sum, avg etc.
alors parcourez cette définition pour comprendre la bonne utilisation de GROUP BY:
Maintenant, si vous voulez connaître le montant total du salaire de chaque client (nom), la requête GROUP BY serait la suivante:
Cela produirait le résultat suivant: (somme des salaires de noms identiques et trier la colonne NOM après avoir supprimé les noms identiques)
la source
La différence est exactement ce que le nom implique: un groupe par effectue une opération de regroupement et un ordre par tris.
Si vous le faites,
SELECT * FROM Customers ORDER BY Name
vous obtenez la liste des résultats triée par nom du client.Si vous le faites,
SELECT IsActive, COUNT(*) FROM Customers GROUP BY IsActive
vous obtenez un nombre de clients actifs et inactifs. Le groupe a agrégé les résultats en fonction du champ que vous avez spécifié.la source
Ils ont une signification totalement différente et ne sont pas vraiment liés du tout.
ORDER BY vous permet de trier le jeu de résultats en fonction de différents critères, comme d'abord trier par nom à partir de az, puis trier par prix du plus élevé au plus bas.
(COMMANDEZ PAR nom, prix DESC)
GROUP BY vous permet de prendre votre jeu de résultats, de le regrouper en groupes logiques, puis d'exécuter des requêtes agrégées sur ces groupes. Vous pouvez par exemple sélectionner tous les employés, les regrouper en fonction de leur lieu de travail et calculer le salaire moyen de tous les employés de chaque lieu de travail.
la source
Simple,
ORDER BY
classe les données et lesGROUP BY
groupes, ou combine les données.ORDER BY
classe l'ensemble de résultats selon le champ mentionné, par défaut dans l'ordre croissant.Supposons que vous lanciez une requête comme
ORDER BY (student_roll_number)
, elle affichera le résultat dans l'ordre croissant des numéros de rôle des élèves. Ici,student_roll_number
entrée peut se produire plus d'une fois.Au
GROUP BY
cas où, nous l'utilisons avec des fonctions d'agrégation, et cela regroupe les données selon la fonction d'agrégation, et nous obtenons le résultat. Ici, si notre requête aSUM (marks)
avecGROUP BY (student_first_name)
elle affichera la somme des notes des étudiants appartenant à chaque groupe (où tous les membres d'un groupe auront le même prénom).la source
GROUP BY est utilisé pour regrouper des lignes dans une sélection, généralement lors de l'agrégation de lignes (par exemple, calculer des totaux, des moyennes, etc. pour un ensemble de lignes avec les mêmes valeurs pour certains champs).
ORDER BY est utilisé pour classer les lignes résultant d'une instruction select.
la source
Quelques bons exemples là-bas. Je voudrais juste ajouter le mien à partir d'une feuille de travail Web qui donne de bons exemples clairs, ainsi que vous permettant d'exécuter votre propre SQL.
Ordre SQL par
Groupe SQL par
la source
ORDER BY
affiche un champ par ordre croissant ou décroissant. WhileGROUP BY
affiche les mêmes noms de champ, id, etc. dans une seule sortie.la source
la source
Il convient de noter que ce
GROUP BY
n'est pas toujours nécessaire car (au moins dans PostgreSQL, et probablement dans d'autres variantes SQL), vous pouvez utiliserORDER BY
avec une liste et vous pouvez toujours utiliserASC
ouDESC
par colonne ...la source