我有一個包含時間增量的字段的表。 行保證是按時間順序排列的,這意味着id爲1的行表示發生在第2行表示的行之前的事件。 現在我想要做一個查詢,它返回每個行的絕對時間戳。獲取每行的增量值總和
示例數據:
id timestamp_delta
1 0
2 22
3 5
4 10
我知道的第一個條目的絕對時間。讓我們假設它是100 因此所得到的表我想用一個查詢來創建將是:
id timestamp_absolute
1 100
2 122
3 127
4 137
看起來簡單,但是我很堅持這一任務。
什麼我能做的就是通過from子句中具有表兩次
select *
from badtable t1, badtable t2
where t2.id = t1.id-1
,因爲我可以依靠的順序讀取行n-1的增量。但是我不確定如何從這裏出發。有沒有可能以某種方式增加每行的價值? 即使解決方案通過計算每行開頭的總和來產生O(N2)運行時行爲,也是可以接受的。
我想這不是我們應該存儲這些數據的方式。我們之所以選擇使用增量是爲了減少從移動應用程序傳輸的數據量(值得,即使僅節省幾個百分點),爲了方便起見,只需將它按原樣寫入服務器數據庫即可。
我很好奇,看看如何簡單或複雜,最好的解決辦法將是...
在如此重要的情況下,這是一個MySQL數據庫。
您可以點擊這裏http://stackoverflow.com/questions/11664142/cumulative-total-in-ms-sql-服務器 –
@OzanDeniz:這是專門針對SQLServer的 - 更好的MySQL問題將是http://stackoverflow.com/questions/664700和http://stackoverflow.com/questions/8359077。 –
是的你對對不起,我看不到它 –