我有一个包含时间增量的字段的表。 行保证是按时间顺序排列的,这意味着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。 –
是的你对对不起,我看不到它 –