从另一列SQL返回正在运行的max列

从另一列SQL返回正在运行的max列,sql,oracle,window-functions,Sql,Oracle,Window Functions,我有一个查询,我想操作一个列来返回一个数组,该数组只包含另一列最后12个值中的最大值(由于查询的其他部分) 例如: 我想从以下位置添加列MaxLast12: Month Power 1 10 2 16 3 8 4 14 5 15 6 3 7 6 8 10 9 11 10 12 11 12 12 12 13 18 14 12 To become: Month Power MaxLast12 1

我有一个查询,我想操作一个列来返回一个数组,该数组只包含另一列最后12个值中的最大值(由于查询的其他部分)

例如: 我想从以下位置添加列MaxLast12:

Month Power 
1     10
2     16
3     8
4     14
5     15
6     3
7     6
8     10
9     11
10    12
11    12
12    12
13    18
14    12

To become:
Month Power MaxLast12
1     10    10
2     16    16
3     8     16
4     14    16
5     15    16
6     3     16
7     6     16
8     17    17
9     11    17
10    12    17
11    12    17
12    12    17
13    18    18
14    12    18
它还将有助于创建一个更简单的解决方案,在该解决方案中,我只在查询中包含12行(虽然不够准确,但足够好),并且只包含最大值。需要执行以下操作:

Month Power 
1     6
2     6
3     8
4     14
5     15
6     3
7     6
8     10
9     11
10    12
11    12
12    12

To become:
Month Power YearMax
1     10    17
2     16    17
3     8     17
4     14    17
5     15    17
6     3     17
7     6     17
8     17    17
9     11    17
10    12    17
11    12    17
12    12    17
由于我猜这两个问题的解决方案将是相似的,任何可能的帮助都是非常感谢的。希望避免使用usign GROUP BY子句,因为我正在修改一种现有的复杂查询

试图使用max()实现此目标,但运气不佳


我正在使用SQL developer。

在Oracle中,您将使用窗口函数:

select month, power,
       max(power) over (order by month rows between 11 preceding and current row)
from t;

请标记您真正使用的
DBMS
。谢谢,忘记了那一个。这些类型的函数将帮助我很多,谢谢您的快速回答!