目前,我正在使用MS Excel执行此操作,但我想知道是否可以在MS Access中使用。
我想获取前一小时和当前小时的平均值,并将该平均值放在当前小时记录中。一个限制是不查询第一条记录,因为它没有前一个小时。
如何实现下面的伪sql代码?
SELECT Date
,Hour
,Node
,Average (Value,"Value from previous hour, e.g (Hour-1) with the same date and node")
FROM tblInput
WHERE Hour = 2,3,4
tblInput:
+----------+------+------+------+
| Date | Hour | Node |Value |
+----------+------+------+------+
| ... | ... | ... | ... |
| 1/1/2-18 | 1 | AAA | 5 |
| 1/1/2-18 | 2 | AAA | 10 |
| 1/1/2-18 | 3 | AAA | 15 |
| 1/1/2-18 | 4 | AAA | 20 |
| 1/1/2-18 | 1 | BBB | 4 |
| 1/1/2-18 | 2 | BBB | 8 |
| 1/1/2-18 | 3 | BBB | 12 |
| 1/1/2-18 | 4 | BBB | 16 |
| ... | ... | ... | ... |
+----------+------+------+------+
输出:
+----------+------+------+------+
| Date | Hour | Node | Ave |
+----------+------+------+------+
| 1/1/2-18 | 2 | AAA | 7.5 |
| 1/1/2-18 | 3 | AAA | 12.5 |
| 1/1/2-18 | 4 | AAA | 17.5 |
| 1/1/2-18 | 2 | BBB | 6 |
| 1/1/2-18 | 3 | BBB | 10 |
| 1/1/2-18 | 4 | BBB | 14 |
+----------+------+------+------+
答案 0 :(得分:1)
是:
SELECT
[Date],
Hour,
Node,
(Value +
(Select Value
From tblInput As T
Where
T.Node = tblInput.Node And
T.Date = tblInput.Date And
T.Hour = tblInput.Hour - 1)) / 2
FROM
tblInput
WHERE
Hour In (2,3,4)