Я хочу вычислить разницу между предыдущим и текущим столбцом и сделать его новым столбцом с именем increase
. Для этого я использую lag
оконную функцию. Значение первого столбца не определено, поскольку предыдущего столбца не существует. Я знаю, что третий параметр указывает значение по умолчанию. Однако это зависит от обстоятельств. Для первой строки я хочу использовать значение другого столбца, например. один из count
из текущей строки. Это предполагает, что 0 увеличивается для подсчета для первой строки, что мне нужно. Указание имени столбца в качестве 3-го аргумента для функции lag
не работает правильно, равно как и использование 0. Как это можно сделать? Я получаю странные результаты, например, совершенно случайный результат или даже отрицательные числа.
SELECT *, mycount - lag(mycount, 1) OVER (ORDER BY id, messtime ASC) AS increase FROM measurements;
Оконные функции также не могут быть вложенными:
ERROR: window function calls cannot be nested