【问题标题】:SQL Previous row from the same columnSQL 同一列的上一行
【发布时间】:2018-10-05 22:39:43
【问题描述】:

如何从同一列获取前一行数据?

我有这样的数据:

A       B              C
1    20181111800   20181111800
2    20181111809   20181111809
3    20181140545   20181140545
4    20181111817   20181140545
5    20181111826   20181140545

C 列应该这样计算:

第一行 = 与 A 列的第一行相同

第二行 excel 公式如下所示:=IF(C1<A2;A2;C1)

第三行 excel 公式如下所示:=IF(C2<A3;A3;C2)

其余行以此类推..

如何将此公式更改为 sql 查询?

【问题讨论】:

  • 您似乎希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的编码人员编写代码,但他们通常只有在发布者已经尝试自己解决问题时才会提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出以及您实际获得的输出(控制台输出、回溯等)。您提供的详细信息越多,您可能收到的答案就越多。检查FAQHow to Ask

标签: sql


【解决方案1】:

看起来你想要一个累积最大值:

select a, b, max(b) over (order by a)
from t;

这是一个 ANSI 标准的窗口函数,在大多数数据库中都可用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 2013-06-02
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2018-10-31
    相关资源
    最近更新 更多