同一分区上的多个窗口函数

时间:2017-08-17 01:57:38

标签: sql

这很好用:

SUM(Revenue) OVER (PARTITION BY Year) AS TotalRevenue

我该如何做到这一点?

SUM(Revenue) - SUM(Cost) OVER (PARTITION BY Year) AS TotalProfit

换句话说,它可以让两个或多个窗口函数进行交互吗?

1 个答案:

答案 0 :(得分:2)

这是一种方式:

SUM(Revenue - Cost) OVER (PARTITION BY Year) AS TotalProfit

或者:

SUM(Revenue) OVER (PARTITION BY YEAR) - SUM(Cost) OVER (PARTITION BY YEAR) as TotalProfit

这些不完全相同 - 由于NULL值,两者都可能会关闭。可能最安全的方法是:

SUM(COALESCE(Revenue, 0) - COALESCE(Cost, 0)) OVER (PARTITION BY Year) AS TotalProfit