これがテーブルの一部であると仮定します
[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
他の方法で説明するのは少し難しいと思いますが、要するに、レコードを 2 回カウントせずに集約をオーバーラップさせたい (つまり、[レベル 2]=cat2_1 の平均は 12.5 ではありません)。OVER()
ネストできないため、これを達成できないようです。レベルのすべての異なる組み合わせを で集計の 3 つのテーブルに結合する必要がありGROUP BY
ますか?
私はかなり後AVG(DISTINCT [Record #]'s [Measure]) OVER(PARTITION BY [Level X])
です。