SQL分析师求助:修改带CASE的窗口函数以排除指定YearMo
解决方案
你可以在MAX()函数内部嵌套CASE语句,只针对exclude不等于1的行提取YearMo值参与最大值计算,就能自动排除标记为1的YearMo。修改后的窗口函数如下:
MAX(CASE WHEN "exclude" <> 1 THEN "YearMo" END) OVER (PARTITION BY "Company") AS "MaxYearMo"
补充说明
- 当
exclude为1时,CASE语句会返回NULL,而MAX()函数计算时会自动忽略NULL值,因此这些被标记的YearMo不会影响最终的最大值结果。 - 如果你的
exclude字段只有0和1两种取值,也可以写成CASE WHEN "exclude" = 0 THEN "YearMo" END,效果完全一致。
内容的提问来源于stack exchange,提问作者sallen
相关产品推荐
相关产品推荐

