Démythifier le GROUP BY || Cours gratuit au format pdf
» Mot de passe oublié » Inscription
 
Accueil Contact Info
             
Accueil Exercices corriges Chercher Top livres Examens corrigés Tutoriel Livres
Catégories

Télécharger

Télécharger
Menu Principal / Informatiques / Bases de données / Mysql / Démythifier le GROUP BY


Démythifier le GROUP BY


Il existe une légende populaire à propos de la clause SQL GROUP BY. Cette légende soutient que la "norme SQL" impose, dans une requête, que les colonnes référencées dans la liste du SELECT apparaissent également dans la clause GROUP BY, à moins que ces colonnes n'apparaissent exclusivement dans une expression d'agrégation. MySQL est souvent accusé de violer cette norme.
Dans cet article, je vais tenter de briser ce mythe et d'apporter par la même occasion un regard plus mesuré sur le traitement du GROUP BY dans MySQL.
Pour ce faire, je vais d'abord démontrer que MySQL peut être configuré pour accepter des clauses GROUP BY qui ne comportent que des colonnes dans la liste du SELECT contenues dans des fonctions d'agrégation, rapprochant ainsi le comportement de MySQL de celui des autres célèbres SGBDR.
Ensuite, je vais montrer qu'il est très important de bien préciser à quelle version de la norme SQL on fait référence. Les deux versions les plus récentes présentent une définition plus sophistiquée de la relation entre les expressions contenues dans le GROUP BY et la liste du SELECT. Contrairement à une croyance populaire, ces normes n'imposent pas noir sur blanc que toutes les colonnes non contenues dans les fonctions d'agrégation de la liste du SELECT apparaissent dans la clause GROUP BY.
Enfin, j'emploierai un exemple simple mais concret pour illustrer de manière informelle ce que je pense que les dernières versions de la norme SQL essaient d'exprimer. Avec un peu de chance, j'arriverai à vous convaincre du bien-fondé de ne pas toujours inclure aveuglément toutes les colonnes non agrégées de la liste du SELECT dans la clause GROUP BY.
Avant de plonger dans le vif du sujet, je vais commencer par une brève présentation du GROUP BY, pour ceux qui ne sont pas familiers de cette notion. En introduction, je présenterai pourquoi la plupart des SGBD imposent que toutes les colonnes non agrégées et référencées dans la liste du SELECT apparaissent dans la clause GROUP BY, et pourquoi les utilisateurs rencontrent parfois des difficultés à cause de la façon dont MySQL traite la clause GROUP BY.








Commentaires:

Il n'y a pas de commentaire pour cette livre.

Accueil Langages Bureautique Top livres Inscription Upload Contactez nous Forum My Startpage My Favorite

Télécharger Livres Gratuit - 2009 © Copyright - All rights reserved.