Maison  >  Article  >  base de données  >  regroupement et tri des données MySQL et ordre des clauses SELECT

regroupement et tri des données MySQL et ordre des clauses SELECT

巴扎黑
巴扎黑original
2017-05-09 13:50:002302parcourir

regroupement et tri mysql

Bien que GROUP BY et ORDER BY accomplissent souvent le même travail, ils sont très différents. Le tableau ci-dessous résume leurs différences.

regroupement et tri des données MySQL et ordre des clauses SELECT

La première différence répertoriée dans le tableau est extrêmement importante. Nous constatons souvent que les données regroupées par GROUP BY sont effectivement sorties dans un ordre de groupe. Mais ce n'est pas toujours le cas, et ce n'est pas requis par la spécification SQL. De plus, les utilisateurs peuvent demander que les éléments soient triés dans un ordre différent de celui regroupé. Ce n'est pas parce que vous regroupez les données d'une certaine manière (pour obtenir une valeur globale groupée spécifique) que vous devez trier la sortie de la même manière. Une clause ORDER BY explicite doit être fournie, même si son effet est le même qu'une clause GROUP BY. N'oubliez pas ORDER BY : Généralement, lorsque vous utilisez la clause GROUP BY, vous devez également donner à

une clause ORDER BY. C'est le seul moyen de garantir que les données sont correctement triées. Ne vous fiez jamaisne vous fiez jamais uniquement à GROUP BY pour trier vos données. Pour illustrer l'utilisation de GROUP BY et ORDER BY, veuillez regarder un exemple. L'instruction SELECT suivante est similaire aux exemples précédents. Il récupère le numéro de commande et le prix total de commande des commandes dont le prix total de commande est supérieur ou égal à 50 :

Entrée :

Sortie :

select order_num,sum(quantity*item_price) as ordertotal from orderitems group by order_num having sum(quantity*item_price) >= 50;

Pour trier la sortie par prix total de la commande, vous devez ajouter une clause ORDER BY, comme indiqué ci-dessous : regroupement et tri des données MySQL et ordre des clauses SELECT

Entrée :

Sortie :

select order_num,sum(quantity*item_price) as ordertotal from orderitems group by order_num having sum(quantity*item_price) >= 50 order by ordertotal;

Analyse : Dans cet exemple, la clause GROUP BY est utilisée pour regrouper les données par numéro de commande (colonne order_num) regroupement et tri des données MySQL et ordre des clauses SELECT afin que la SUM( *) La fonction peut renvoyer le prix total de la commande. La sous-clause HAVING

filtre les données afin que seules les commandes dont le prix total de la commande est supérieur ou égal à 50 soient retournées. Enfin, utilisez la clause ORDER BY pour trier le résultat. Ordre des clauses SELECT

Revoyons l'ordre des clauses dans l'instruction SELECT. Le tableau 13-2 répertorie les clauses apprises jusqu'à présent dans l'ordre dans lequel doit être utilisé dans une instruction SELECT.

regroupement et tri des données MySQL et ordre des clauses SELECT

[Recommandations associées]regroupement et tri des données MySQL et ordre des clauses SELECT

    Regroupement de données MySQL : Créer un regroupement
  1. regroupement de données MySQL : filtrer le regroupement

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn