查找价值变化带来的运行总额

时间:2019-05-22 23:17:16

标签: sql postgresql

随着价值的变化,我希望获得一个总计。我的表具有值序列,并且它们不断变化。我需要给输出的值是在序列中重复多少次。

例如:假设表有两个值。

abc 0
abc 0
abc 1
abc 0
abc 0
abc 0
abc 1
abc 1
abc 0
def 1
def 1
def 0
def 1
def 0

我知道我们需要使用row_number和lag函数,但是无法确定何时确切地更改了序列。

我想将结果作为

abc 0   1
abc 0   2
abc 1   1
abc 0   1
abc 0   2
abc 0   3
abc 1   1
abc 1   2
abc 0   1
def 1   1
def 1   2
def 0   1
def 1   1
def 0   1

1 个答案:

答案 0 :(得分:1)

数据库表表示无序集。因此,您可以做您想做的-假设您有一列指定顺序。这样的列可能是In [19]: max(sympy.factorint(600851475143)) Out[19]: 6857 列或插入日期/时间或其他内容。

使用这样的列,这是一个空白和孤岛的问题。我认为最简单的解决方案是使用行号的不同来识别组:

serial