Recevoir l'erreur suivante:
Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'world.country.Code' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Lors de l'exécution de la requête suivante:
select countrylanguage.language, country.code, sum(country.population*countrylanguage.percentage/100)
from countrylanguage
join country on countrylanguage.countrycode = country.code
group by countrylanguage.language
order by sum(country.population*countrylanguage.percentage) desc ;
Utilisation de la base de données de tests MySQL World ( http://dev.mysql.com/doc/index-other.html ). Aucune idée pourquoi cela se passe. Exécute actuellement MYSQL 5.7.10.
Des idées??? : O
Comme @Brian Riley l’a déjà indiqué, vous devez supprimer 1 colonne de votre choix.
select countrylanguage.language ,sum(country.population*countrylanguage.percentage/100)
from countrylanguage
join country on countrylanguage.countrycode = country.code
group by countrylanguage.language
order by sum(country.population*countrylanguage.percentage) desc ;
ou l'ajouter à votre groupe
select countrylanguage.language, country.code, sum(country.population*countrylanguage.percentage/100)
from countrylanguage
join country on countrylanguage.countrycode = country.code
group by countrylanguage.language, country.code
order by sum(country.population*countrylanguage.percentage) desc ;
country.code
n'est pas dans votre group by
, et n'est pas un agrégat (encapsulé dans une fonction d'agrégat).