私はtotal_city_popという7行目に列別名を作成しました。SELECT句で列エイリアスの名前が付けられた直後にその列エイリアスを使用する方法はありますか?
次に、8行目で、そのエイリアスを新しい計算で使用しようとしました。
なぜできない:私は "列は ""(ci.city_proper_pop + ci.metroarea_pop)/ AS total_city_pop ...^LINE 8が存在しません" total_city_popというエラーメッセージを受け取った
しかし、私はそれを作成した後にエイリアス名を使用しますか?
ここではコードです -
SELECT co.code, ci.name AS capital_city, ci.city_proper_pop, ci.metroarea_pop, ci.urbanarea_pop,
CASE
WHEN (ci.city_proper_pop + ci.metroarea_pop + ci.urbanarea_pop) IS NULL
THEN (ci.city_proper_pop + ci.urbanarea_pop)
ELSE (ci.city_proper_pop + ci.metroarea_pop + ci.urbanarea_pop) END AS total_city_pop,
(ci.city_proper_pop + ci.metroarea_pop)/total_city_pop AS percent_outside_urbanarea
FROM countries AS co
INNER JOIN cities AS ci ON co.capital = ci.name
WHERE continent LIKE '%America%' OR continent LIKE 'Europe'
ORDER BY total_city_pop DESC
LIMIT 10;
ありがとうございました。
できません。サブクエリを使用するか、式を繰り返す必要があります。 –
https://dev.mysql.com/doc/refman/5.7/en/problems-with-alias.html –