Нет, он не дает результатов, указанных OP

жен применить определенное преобразованиеfn(argument), Вотargument равноvalue, но не тогда, когда это отрицательно. Когда вы получаете первый отрицательныйvalue, затем вы «ждете», пока он не суммирует последовательные значения, и эта сумма становится положительной. Тогда вы делаетеfn(argument), Смотрите таблицу, которую я хочу получить:

value      argument 
---------------------
  2           2      
  3           3      
 -10          0      
  4           0
  3           0
  10          7
  1           1

Я мог бы сложить все значения и применитьfn к сумме, ноfn может быть разным для разных рядов, и важно знать номер ряда, чтобы выбрать конкретный фн.

Как и в случае решения Postgres SQL, похоже, что оконные функции подходят, но я не достаточно опытен, чтобы писать выражения, которые это делают. На самом деле, я новичок в «мышлении в sql», к сожалению. Я предполагаю, что это легко сделать императивным способом, но я пока не хочу писать хранимую процедуру.

Ответы на вопрос(2)

Ваш ответ на вопрос