次のエラーを受け取ります:
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
次のクエリを実行する場合:
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 ;
MySQLワールドテストデータベースの使用( http://dev.mysql.com/doc/index-other.html )。なぜこれが起こっているのか分かりません。現在、MYSQL 5.7.10を実行しています。
何か案は??? :O
@ブライアン・ライリーがすでに言ったように、選択から1列を削除する必要があります
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 ;
またはグループに追加します
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
はgroup by
ステートメントに含まれておらず、集約ではありません(集約関数にラップされています)。