从另一列SQL返回正在运行的max列
我有一个查询,我想操作一个列来返回一个数组,该数组只包含另一列最后12个值中的最大值(由于查询的其他部分) 例如: 我想从以下位置添加列MaxLast12:从另一列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
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
。谢谢,忘记了那一个。这些类型的函数将帮助我很多,谢谢您的快速回答!