列の別名

「Joe Celko / プログラマのためのSQL 第2版」でSQL覚えたくちなので、SELECT句は最後に実行されるはず、という理解だったんですが、Teradata Databaseでは、group byやorder byでも別名使えます。

というか、これが通るのにはびっくりしたw

select
1 as one,
one + 1 as two,
two + 1 as three
one two three
1 2 3

実行計画見ると、内部的には全部展開されてるみたいです。
Cのマクロみたいな感じ?

重そうな計算処理があったら、普通にサブクエリで用意しといた方が良いのかも?