我有一个表A的值低于
year quarter price source
2017 1 10 s
2017 3 12 t
2018 1 10 m
2018 2 15 r
我希望看到下表。是的,我想用先前的季度值填充非指定的季度。
我想创建一个包含所有季度的临时表B,并对此表A进行联接,但是如何填充上一季度的价格和来源字段。
year quarter price source
2017 1 10 s
2017 2 10 s
2017 3 12 t
2017 4 12 t
2018 1 10 m
2018 2 15 r
答案 0 :(得分:0)
为此,oracle具有LAG窗口功能,该功能允许您访问以前的行。我认为,无论如何都不需要将数据填充到下一行,因为选择时可以轻松地收集它。
例如
SELECT year,
quarter,
price,
source,
price,
LAG(price, 1, 0) OVER (ORDER BY year, quarter) AS price_previous FROM A;