Dupliqué possible: strong>
Y a-t-il une différence entre le groupe par et distinct < / p> blockQuote>Quelle est la différence entre le groupe par et distinct dans une requête MySQL? p>
3 Réponses :
duplicate de
y a-t-il une différence entre le groupe Par distinct p>
Il est déjà discuté ici P>
Si vous souhaitez toujours écouter ici P>
Le groupe de puits et distinct a son propre usage. < / p>
distinct est utilisé pour filtrer des enregistrements uniques sur les enregistrements qui répondent aux critères de requête. p>
Groupe par clause est utilisé pour regrouper les données sur lesquelles les fonctions globales sont tirées et la sortie est retourné en fonction des colonnes du groupe par clause. Il a ses propres limites telles que toutes les colonnes dans la requête SELECT en dehors des fonctions globales doivent faire partie du groupe par clause. P>
Donc, même si vous pouvez avoir les mêmes données renvoyées par Distinct et groupe par clause, il est préférable d'utiliser distinct. Voir l'exemple ci-dessous p> peut être écrit comme p> Il vous rend la vie plus facile lorsque vous avez plus de colonnes dans le Sélectionnez la liste. Mais dans le même temps, si vous devez afficher SUM (COL10) ainsi que les colonnes ci-dessus que vous devrez utiliser le groupe par. Dans ce cas, distinct ne fonctionnera pas. P> par exemple p> espère que cela aide. P> p>
Soins pour regarder les documents: p>
http://dev.mysql.com/ DOC / REFMAN / 5.0 / FR / GROUPE BY-FONCESS.HTML P>
et p>
D'autre part Une autre différence qui s'applique uniquement à MySQL est que résultats: p> mais en utilisant résultats: p> comme Un résultat de l'absence de tri utilisant distinct code> ne fonctionne que sur toute la ligne. Ne soyez pas induit en erreur dans la pensée Sélectionnez Distinct (A), B CODE> fait quelque chose de différent. Ceci est équivalent à SELECT DISTINCT A, B CODE>. Groupe par CODE> Crée un groupe contenant toutes les lignes qui partagent chaque valeur distincte dans une seule colonne ( ou dans un certain nombre de colonnes ou d'expressions arbitraires). Utilisation de Groupe par code> Vous pouvez utiliser des fonctions agrégées telles que Nombre code> et max code>. Ceci n'est pas possible avec distinct code>. P>
distinct code>. LI>
groupe par code>. Li>
ul>
groupe par code> implique également une commande par code> sauf si vous spécifiez contraire. Voici ce qui peut arriver si vous utilisez distincts code>: p> Groupe par code> Les résultats seront entrés dans la commande triée: p> distinct code> est plus rapide dans le cas où vous pouvez utiliser soit. Remarque: Si vous n'avez pas besoin de tri avec Group par code>, vous pouvez ajouter commander par null code> pour améliorer les performances. P> P>
J'ai marqué cela comme dupliquer, mais j'ai réalisé que cette question est spécifique à MySQL et que l'autre était pour SQL en général. MySQL a une autre différence qui n'est pas spécifiée par la norme SQL. En tant que tel, je ne pense plus que ceci est un dupliqué exact, mais je ne peux pas supprimer mon vote.