超过 PARTITION BY 查询抛出错误

over PARTITION BY query throws error

这个查询应该有效恕我直言:

SELECT        
    Year                             
    ,Month 
    ,SUM(SomeFactMeasure) OVER (PARTITION BY Year BY Month) AS BigSum
    ,SUM(SomeFactMeasure) AS SmallSum 
FROM SomeTable
GROUP BY 1, 2;

不幸的是,我得到:

SELECTED NON-AGGREGATE VALUES MUST BE PART OF THE ASSOCIATED GROUP

OLAP 函数是在聚合 之后计算的,没有更多细节SomeFactMeasure 要在组总和中求和。

您需要在聚合结果上应用函数,符合标准 SQL SUM(SUM(SomeFactMeasure)) OVER 或 Teradata 重用别名 SUM(SmallSum) OVER.