假设这是表格的一部分
[Level1] [Level2] [Level3] [Record #] [Measure]
cat1_1 cat2_1 cat3_1 rec_1 5
cat1_2 cat2_1 cat3_2 rec_2 10
cat1_1 cat2_1 cat3_3 rec_2 10
我想找到一种像这样聚合的方法
[Level 1] [Level 2] [Level 3] [Average 1] [Average 2] [Average 3]
cat1_1 cat2_1 cat3_1 7.5 7.5 10
cat1_1 cat2_1 cat3_3 7.5 7.5 10
cat1_2 cat2_1 cat3_2 10 7.5 5
我发现用其他方式描述有点困难,但简而言之,我希望聚合重叠而不计算任何记录两次(即 [level 2]=cat2_1 的平均值不是 12.5)。似乎OVER()
无法做到这一点,因为你不能嵌套它。我是否需要将每个不同的级别组合加入到三个聚合表中GROUP BY
?
我很喜欢AVG(DISTINCT [Record #]'s [Measure]) OVER(PARTITION BY [Level X])
。