戯言

つらつらと気づいたことを書いていきます。人狼とか。

スポンサーサイト


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

GROUP BY句ではSELECT句で定義した別名が使えません


この理由は、クエリがどういう順序で評価されているかを考えれば、わかりやすいです。

いきなりWHERE句からクエリを評価しようとして、
WHERE句で指定された列名を確認しても、
FROM句で指定されているテーブル名を知っておかないと、
どのテーブルの列か不明なので、評価できません。

つまり、FROM句を評価した後に、WHERE句の評価をするはずです。
人間がクエリの解釈をするときも同じですよね。

このように考えていくと、SELECTクエリの評価は、
FROM → WHERE → GROUPBY → HAVING → ORDERBY → SELECT句のような順で
評価されるはずです。

そのため、SELECT句より先に評価されるGROUPBY句やHAVING句では、
SELECT句で指定した別名が使えないのです。

たぶん。
個人的に、そういう理解をしました。




関連記事
23:

確かに!!
と思いました。

別名を使えるとすっきりするんですけどね・・・。
どうしてもって言うならサブクエリにしちゃえばできない事はないですね。

2015.03.07 12:35 しな #- URL[EDIT]
25:承認待ちコメント

このコメントは管理者の承認待ちです

2017.01.03 14:06 # [EDIT]

管理者にだけ表示を許可する
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。