PostgreSQL中累积和的计算
在数据处理中,经常需要计算特定字段的累积和或运行总和。在PostgreSQL中,可以使用窗口函数轻松实现此目标。
窗口函数简介
窗口函数允许您对基于特定条件分组在一起的行执行计算。在本例中,我们希望按circle_id
分组行,并计算amount
字段的累积和。
计算累积和的查询
以下查询演示如何计算累积和:
<code class="language-sql">SELECT ea_month, id, amount, ea_year, circle_id, sum(amount) OVER (PARTITION BY circle_id ORDER BY ea_year, ea_month) AS cum_amt FROM tbl ORDER BY circle_id, ea_year, ea_month;</code>
在此查询中:
PARTITION BY
子句按circle_id
列分组行。ORDER BY
子句按ea_year
和ea_month
对每个分区中的行进行排序。OVER
子句定义一个窗口,该窗口将sum()
函数应用于从每个分区开始到当前行的行。cum_amt
列中。处理日期时间数据
如果您的ea_year
和ea_month
列存储为字符串,则查询将按字母顺序排序,而不是按时间顺序排序。要正确排序,请考虑在执行计算之前将其转换为日期类型。
排除同行
在PostgreSQL 11及更高版本中,您可以使用frame_exclusion
选项来控制在窗口函数中如何处理同行。这允许您从计算中包含或排除某些行。
按照这些步骤,您可以有效地在PostgreSQL中计算累积和,从而为您的数据提供有价值的见解。
以上是如何使用窗口函数计算 PostgreSQL 中的累积和?的详细内容。更多信息请关注PHP中文网其他相关文章!