我有一個滑動窗口問題。具體而言,我不知道我的窗口應該從哪裏開始,應該在哪裏結束。我知道我的間隔/窗口的大小。sql滑動窗口 - 在區間內找到最大值
我需要找到提供最佳(或最差,取決於您如何看待它)情況的窗口的開始/結束。
這裏有一個例子數據集:
value | tstamp
100 | 2013-02-20 00:01:00
200 | 2013-02-20 00:02:00
300 | 2013-02-20 00:03:00
400 | 2013-02-20 00:04:00
500 | 2013-02-20 00:05:00
600 | 2013-02-20 00:06:00
500 | 2013-02-20 00:07:00
400 | 2013-02-20 00:08:00
300 | 2013-02-20 00:09:00
200 | 2013-02-20 00:10:00
100 | 2013-02-20 00:11:00
比方說,我知道我需要的時間間隔爲5分鐘。所以,我需要知道「價值」總和最高的5分鐘間隔中包含的價值和時間戳。在我上面的例子中,從'2013-02-20 00:04:00'到'2013-02-20 00:08:00'的行會給我一個400 + 500 + 600 + 500 + 400 = 2400的總和,這是該表中超過5分鐘的最高值。
我不反對如果需要使用多個表。但我試圖找到一個「最好的情況下」間隔。結果可以任何方式,只要他們淨間隔。如果我得到所有的數據點,它仍然有效。如果我得到開始和結束點,我也可以使用這些。
我發現了SQL的幾個滑動窗口問題,但沒有發現窗口大小是已知因素的地方,而且起點不明。
您正在使用哪種RDBMS? – 2013-02-20 21:10:20
我使用的是postgres,目前沒有很多其他選項。 – jasonmclose 2013-02-20 21:12:15
@jasonmclose:哪個版本的PosgreSQL? – Quassnoi 2013-02-20 21:12:38