式を繰り返したくない場合は、派生テーブルを使用できます:
select *
from (
select id, cos(id) + cos(id) as op
from myTable
) as t
WHERE op > 1;
これはパフォーマンスに影響を与えることはなく、SQL標準で必要とされる単なる構文糖衣です。
または、上記を一般的なテーブル式に書き換えることもできます。
with t as (
select id, cos(id) + cos(id) as op
from myTable
)
select *
from t
where op > 1;
どちらを好むかは、主に好みの問題です。 CTEは派生テーブルと同じ方法で最適化されるため、特に式cos(id) + cos(id)
にインデックスがある場合は、最初のCTEの方が高速になる可能性があります。