【发布时间】:2016-08-20 00:31:46
【问题描述】:
我想检测此(示例)db 中列值的变化
WITH events(id, row,event) AS (
VALUES
(1,1, 0 )
,(1,2, 0 )
,(1,3, 1 )
,(1,4, 0 )
,(1,5, 1 )
,(2,1, 0 )
,(2,2, 1 )
,(3,1, 0 )
,(3,2, 0 )
)
select * from events
我正在寻找的是新列“代码”的代码,该列在之后切换为 1 de 事件列显示 1。在同一 id 内,代码保持 1。 对于这个例子,这个新列将如下所示
WITH events2(id, row,event, code) AS (
VALUES
(1,1, 0, 0 )
,(1,2, 0, 0 )
,(1,3, 1, 0 )
,(1,4, 0, 1 ) -- notice the switch here
,(1,5, 1, 1 ) --
,(2,1, 0, 0 )
,(2,2, 1, 0 )
,(3,1, 0, 0 )
,(3,2, 0, 0 )
)
select * from events2
我有预感,答案将与这个问题的答案有关:PostgreSQL window function: partition by comparison
不知怎的,我自己也弄不明白..
彼得
【问题讨论】:
标签: postgresql