0
這感覺就像一個間隙和島嶼問題,窗口函數看起來像是正確的工具,但我似乎無法得到一個工作結果。尋找導致事件發生的行並將它們視爲一個序列
我的數據是這樣的(注:遊戲ID是一個UUID,在這裏顯示爲可讀性計數器):
GameID User Date Win
100 A 10/11/2012 0
101 A 10/12/2012 0
102 B 10/11/2012 0
103 B 10/13/2012 1
104 B 10/14/2012 0
105 C 10/10/2012 0
106 C 10/12/2012 0
107 C 10/13/2012 1
108 C 10/14/2012 0
109 C 10/15/2012 0
110 C 10/16/2012 0
111 C 10/17/2012 1
112 D 10/11/2012 0
113 D 10/13/2012 1
114 D 10/20/2012 0
115 D 10/21/2012 0
我期待捕捉(數/聚合成數組)的損失序列用戶在每次勝利之前都有。舉例來說,如果你看看用戶B他們有一場勝利,那勝利在它之前有一個損失。如果你看看用戶C,ID 107的勝利前面有兩個損失,而ID 111的勝利前面有3個損失。
我期待應用數組聚合array_agg
並將前面的損失附加到贏。最後,我想下面的結果:
GameID User Date Win LosingStreak
103 B 10/13/2012 1 [102]
107 C 10/13/2012 1 [105, 106]
111 C 10/17/2012 1 [110,109,108]
113 D 10/13/2012 1 [112]
我一直在玩partition by User order by date
但我需要一場勝利來「重置」的每個分區,我似乎無法環繞解決它的任何方式我的頭。 lead()和lag()也沒有幫助,因爲我需要lead(x),其中x是每個分區的可變數字。
非常聰明。非常感謝。 – maxTrialfire