在窗口函数中包装case语句

时间:2018-04-19 14:12:33

标签: sql oracle

我有下面的sql并想在window函数中添加一个filter子句。这可能吗?

select ROUND(SUM(M.CHRG_RATE/M.CONTRACTUAL_RATE) OVER 
           (PARTITION BY M.PROGRAM),0) AS BILLED_MEMBERS_PER_MONTH2
from tableA
where 1=1

我以为我可以包装一个案例陈述?

类似的东西:

1 个答案:

答案 0 :(得分:1)

您可以使用case将行排除在sum之外。例如,这仅对flag列等于'Q'的行进行求和:

SUM(CASE WHEN M.FLAG = 'Q' THEN M.CHRG_RATE/M.CONTRACTUAL_RATE END)