Есть ли способ сослаться на приведенный ниже кортеж в вычислении? - PullRequest
0 голосов
/ 01 августа 2020

У меня вот это представление:

   x  |  y   |  z 

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

Есть ли способ написать запрос для элемента z, чтобы он ссылался на другую строку?

Например, если я хочу, чтобы z был значение y кортежа ниже - 1

Итак:

za = yb - 1 = 46-1 = 45

zb = y. c - 1 = 356 - 1 = 355

z. c = ярд - 1 = 509 - 1 = 508

1 Ответ

1 голос
/ 01 августа 2020

Вы описываете оконную функцию lead(), которая позволяет вам получить доступ к любому столбцу в «следующей» строке (учитывая критерии partiton и order by):

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