我有兩列如表:計數相等,有序的行集連續值
CREATE TABLE actions (
action_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
"action" text NOT NULL
);
和下面的數據吧:
action_time | action
----------------------------+--------
2016-12-30 14:12:33.353269 | a
2016-12-30 14:12:38.536818 | b
2016-12-30 14:12:43.305001 | a
2016-12-30 14:12:49.432981 | a
2016-12-30 14:12:53.536397 | b
2016-12-30 14:12:57.449101 | b
2016-12-30 14:13:01.592785 | a
2016-12-30 14:13:06.192907 | b
2016-12-30 14:13:11.249181 | b
2016-12-30 14:13:13.690897 | b
(10 rows)
你可以假設沒有重複值在action_time列中。
如何計算從上一次操作開始的行中相同操作的數量?
連續相同動作的數量沒有限制,任何動作都可以是最後一個動作。此外,不同行爲的種類沒有限制:我只用了兩個來簡化示例數據。
對於此示例數據,我期望結果爲3.這是因爲最後一個操作是「b」,並且它連續出現3次。
我認爲解決方案可以結合窗口功能和WITH RECURSIVE
條款,但我不知道該怎麼做。
的偉大工程!非常感謝你救了我的一天:-) –