Mysql
 sql >> Base de données >  >> RDS >> Mysql

Fonctions d'agrégation MySQL sans clause GROUP BY

C'est par conception - c'est l'une des nombreuses extensions de la norme autorisée par MySQL.

Pour une requête comme SELECT name, MAX(age) FROM t; la documentation de référence indique que :

Sans GROUP BY, il y a un seul groupe et il est indéterminé quelle valeur de nom choisir pour le groupe

Voir la documentation sur le groupe en manipulant pour plus d'informations.

Le paramètre ONLY_FULL_GROUP_BY contrôle ce comportement, voir 5.1.7 Modes SQL du serveur l'activer empêcherait une requête avec une fonction d'agrégation dépourvue d'une instruction group by et elle est activée par défaut à partir de MySQL version 5.7.5.