私はSQLが苦手で、次のクエリでpartition byを使用してMAXを取得したかったのですが、その最大ドライブ列のwhere句なしで同じクエリを使用すると、列が存在しないと表示されますが、列をwhereから削除すると同じ列が存在することを選択で確認できます。
select
MAX(case when total_split_count = 0 or total_split_count is null then total_split_count else 1 end) OVER (PARTITION BY ia.col1,ia.col2,ia.col3,ia.col4,ia.col5,ia.col6) as bb
from audits.tbl_name ia
where bb = 1
エラー: 列 "bb" が存在しません 位置: 304
ここで、bb = 1 ^ 1 ステートメントが失敗しました。
ただし、クエリは where 句で実行されます。
select
MAX(case when total_split_count = 0 or total_split_count is null then total_split_count else 1 end) OVER (PARTITION BY ia.col1,ia.col2,ia.col3,ia.col4,ia.col5,ia.col6) as bb
from audits.tbl_name ia
注:実行時に「as」を介してその列を作成しました。