有一个包含以下数据的表:
ID In Out
1 100.00 0.00
2 10.00 0.00
3 0.00 70.00
4 5.00 0.00
5 0.00 60.00
6 20.00 0.00
现在,我需要一个查询,该查询给出以下结果:
ID In Out Balance
1 100.00 0.00 100.00
2 10.00 0.00 110.00
3 0.00 70.00 40.00
4 5.00 0.00 45.00
5 0.00 60.00 -15.00
6 20.00 0.00 5.00
如何最好地处理“余额”计算。有人告诉我postgres中有window函数,如何使用postgres window函数来完成呢?
谢谢。
select t.*, sum(“In”-“Out”) over(order by id) as balance
from tbl t
order by id
小提琴: http
**://sqlfiddle.com/#!15/97dc5/2/0**
考虑更改列名“ In” /“ Out”,这样您就不必在引号中加上引号了。(它们是保留字)
如果只需要一位客户(customer_id = 2):
select t.*, sum("In"-"Out") over(order by id) as balance
from tbl t
where customer_id = 2
order by id
如果您的查询要跨越多个客户,并且您希望与每个客户重新开始保持平衡,则可以使用:
select t.*, sum("In"-"Out") over( partition by customer_id
order by customer_id, id ) as balance_by_cust
from tbl t
order by customer_id, id
问题内容: 我正在尝试将某些Windows函数(和)用于数据框,但我不知道如何使用它们。 有人可以帮我吗?在Python API文档 中,没有关于它的示例。 具体来说,我正在尝试获取数据框中数字字段的分位数。 我正在使用Spark 1.4.0。 问题答案: 要使用窗口功能,您必须先创建一个窗口。定义与普通SQL几乎相同,这意味着您可以定义顺序,分区或同时定义两者。首先让我们创建一些虚拟数据: 确保
问题内容: 我有一个名为的表,最近刚刚在其中添加了一个名为type的新列。 行值将不是整个表唯一的,而是它们各自的字段唯一的。无论如何,我什至不在乎它们的独特性。 所有这些的目的是允许用户设置他们上传的照片的排序顺序(最多10张,并且可以拖动和重新排序等)。当用户“删除”照片时,我不会删除记录,我只是在该行上设置了一个字段。 Aaaanyway,我要介绍一个添加的迁移(它们以前无法订购照片,它们只
我试图在火花数据帧中使用rowNumber。我的查询在Spark shell中按预期工作。但是当我在eclipse中写出它们并编译一个jar时,我面临着一个错误 我的问题 在Spark shell中运行查询时,我没有使用HiveContext。不确定为什么它返回一个错误,当我运行相同的jar文件。如果有帮助的话,我也在Spark 1.6.0上运行脚本。有人面临类似的问题吗?
问题内容: 我正在使用SQL Server 2012构建库存计划/重新排序引擎。 我有一堆过时的交易,称它们为贷方和借方。我想一次做两件事: 生成运行总计(每日净余额) 生成补充建议。补充将重置“总计”(在“#1”中)为零。 该表如下所示: 我正在使用SQL 2012 SUM OVER()窗口函数来显示这些的运行总数。 我需要找到一种方法将运行总计(又称RT)重置为零(如果下降到零以下)。 我的查
我有一个聚合函数,它计算WindowedStream中一系列事件的平均值。 这里的警告是,平均值需要在可能无序(或根本没有)到达的事件对上计算。 换句话说,我需要在计算之前对数据进行排序,因为序列很重要。 我可以用getResult API来实现这一点,但是这个函数在窗口中的每个事件上都被调用,这在性能方面没有意义。我也可以用flink cep来做这件事,但出于同样的原因,我想避免使用它。 理想情
问题内容: 我有一个带有一些外键的表,我需要获取这些键何时更改的报告。 SELECT from,to,FIRST(timestamp)FROM表GROUP BY from,to; 我可以使用“分组依据”来获取前两个过渡,但是它将第三个与第一个过渡组合在一起,当它返回时我看不到它。 我想进行以下查询: 是否可以? 问题答案: 在PostgreSQL 8.4中,您可以使用窗口函数LAG访问上一行并进行