sql—使用递归cte查找特定日期之前的最大值

i86rm4rw  于 2021-08-01  发布在  Java
关注(0)|答案(1)|浏览(413)

考虑下表(称为表1):

ID      Date       Result
1    1/1/2020      10
2    1/2/2020      8
3    1/3/2020      12
4    1/4/2020      13
5    1/5/2020      9
6    1/6/2020      8.5

... 等等。
如何在一条语句中编写一个t-sql命令,返回所有小于或等于日期列中日期的日期和结果列的最大值?换句话说,期望的结果输出将是:

1/1/2020      10
1/2/2020      10
1/3/2020      12
1/4/2020      13
1/5/2020      13
1/6/2020      13

我在想一个递归的cte,但我似乎不知道怎么写。
提前感谢您的时间和投入。

db2dz4w8

db2dz4w81#

你不会用递归的cte来做这个。您将使用窗口函数:

select t.*, max(result) over (order by date) as max_to_date
from t;

相关问题