【问题标题】:Is there a way to reference the tuple below in a calculation?有没有办法在计算中引用下面的元组?
【发布时间】:2020-08-01 20:36:30
【问题描述】:

我在这里有这样的看法:

   x  |  y   |  z 

 -----+------+-----
    a | 645  | 
    b | 46   | 
    c | 356  | 
    d | 509  | 

有没有办法为 z 项编写查询以引用不同的行?

例如,如果我希望 z 是下面的 y 值的元组的值 - 1

所以:

z.a = y.b - 1 = 46 - 1 = 45

z.b = y.c - 1 = 356 - 1 = 355

z.c = y.d - 1 = 509 - 1 = 508

【问题讨论】:

    标签: sql postgresql window-functions


    【解决方案1】:

    您正在描述窗口函数lead(),它允许您访问“下”行上的任何列(给定partitonorder by 条件):

    select
        x, 
        y,
        lead(y) over(order by x) - 1 as z
    from mytbale
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-19
      • 2021-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-01
      • 2012-10-16
      • 2022-01-14
      相关资源
      最近更新 更多