我必须应用某种转换 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
对于不同的行可能不同,并且必须知道行号才能选择具体的fn。
想要一个 Postgres SQL 解决方案,看起来窗口函数很合适,但我还没有足够的经验来编写执行此操作的表达式。事实上,不幸的是,我是“thinking in sql”的新手。我想这可以通过命令式方式轻松完成,但我还不想编写存储过程。
最佳答案
我想我迟到了,但这可能对某人有帮助:
select
value,
greatest(0, value) as argument
from your_table;
关于sql - 在 Postgresql 中选择正聚合值并忽略负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7049647/