Нет, он не дает результатов, указанных 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», к сожалению. Я предполагаю, что это легко сделать императивным способом, но я пока не хочу писать хранимую процедуру.