在 SSMS 中,我有一个 Orders 事实表,如下所示:
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
我有一个天维度,如下所示:天
Key Day
------------
1 0
2 1
3 4
... ...
1000 999
我有一个样式维度,如下所示:
Style
Key Style
---------------
1 3.5
2 2
我想要做的是用每个地方的平均值填充表格[AvgXX]
上的列Groups
Amount
Style
Day
是用大于或等于 100
例如,该Red
组的 a StyleKey
= 1。因此,AvgXX 列应该向我显示avg(Amount)
forStyleKey = 1 where Days >= 100
。
请注意,应将具有相同 Days / DaysKey 的 Days 视为同一天(换句话说,如果我在第 100 天有 2 个条目均为 1,则两者的平均值不应2 / 1 = 2
为2 / 2 = 1
。
我正在努力的更多的是UPDATE
语句,而不是带有几个连接的简单 select 语句。
通常,我会在可视化工具中进行这样的计算,但在这种情况下,很遗憾,我不能。
(注意:我昨天最初问了这个问题,但我写得不好所以不清楚。希望这更是如此)。