在 SSMS 中,我有一个如下所示的Orders
事实表:
订单
ID GroupKey OrderID Amount DaysKey
----------------------------------------------
1 29 29422 23.93 14
2 29 29444 -13.28 101
3 29 29453 14.28 101
4 30 30194 100.00 103
5 32 30201 101.53 93
6 32 30291 50.00 121
我有一个Groups
看起来像这样的维度
团体
Key Name StyleKey AvgXX
-------------------------------------------
29 Blue 2 NULL
30 xyz 1 NULL
31 doesntmatter 2 NULL
32 Red 1 NULL
我有一个Days
看起来像这样的维度:
天
Key Day
------------
1 0
2 1
3 4
... ...
1000 999
我有一个Style
看起来像这样的维度:
风格
Key Style
---------------
1 3.5
2 2
我想要做的是用大于或等于 100的每个平均值填充表格[AvgXX]
上的列。Groups
Amount
Style
Day
例如,该Red
组属于StyleKey 1
。Orders
表中有 2 个条目StyleKey 1
超过 100 天(见记录 4 和 6)。因此,AvgXX
该组的列Red
应为 75.00。
该Blue
组(第 29 组)的平均值应为 1,因为 1)Orders 表中只有 1 个 StyleKey 为 1 的组(参见第 2 行和第 3 行),DayKey 101 的总金额为 1(第一行有小于 100 的一天,因此应忽略)。
此外,我想要每个样式的平均值(目前只有 2 个样式)
通常,我会在可视化工具中进行这样的计算,但在这种情况下,很遗憾,我不能。