【发布时间】:2020-10-05 23:21:35
【问题描述】:
我有一个如下所示的数据表:
|Contract Date | Settlement_Prcie |
|--------------|------------------|
| 01/10/2020 | 50 |
|--------------|------------------|
| 01/11/2020 | 10 |
|--------------|------------------|
| 01/01/2021 | 20 |
|--------------|------------------|
| 01/02/2021 | 30 |
|--------------|------------------|
| 01/03/2021 | 50 |
|--------------|------------------|
我想编写一个查询,对下面的每两行求和...例如,在合同日期为 01/10/2020 的第一行,求和列将添加 10 和 20,得到 30 的结果。下一行,总和列将添加 20 和 30 得到 40,依此类推。结果表如下所示:
|Contract Date | Settlement_Prcie | Sum Column |
|--------------|------------------|------------|
| 01/10/2020 | 50 | 30
|--------------|------------------|------------|
| 01/11/2020 | 10 | 50
|--------------|------------------|------------|
| 01/01/2021 | 20 | 80
|--------------|------------------|------------|
| 01/02/2021 | 30 |
|--------------|------------------|
| 01/03/2021 | 50 |
|--------------|------------------|
谁能帮我查询,不仅针对 2 个后续行,还针对 x 个后续行。
到目前为止,我已经尝试过使用SUM (Settlement_Price) Over (order by Contract_date Rows between 3 preceding and current row) - Current row,当然不行,但我已经做到了。
【问题讨论】:
-
与
LAG()一起使用窗口函数 -
StackOverflow 不是免费的编码服务。你应该try to solve the problem first。请更新您的问题以在minimal reproducible example 中显示您已经尝试过的内容。如需更多信息,请参阅How to Ask,并拨打tour :)
标签: sql oracle analytic-functions