我不擅长 SQL,我想在下面的查询中使用 partition by 来获取 MAX,但是当我使用相同的查询而没有该 max drive 列的 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”创建了该列。