1
我有一張表格,每5分鐘更新一次數據。當前時間戳與之前時間戳之間的差異
| TimeStamp | Data |
| 1 | 2 |
| 2 | 8 |
| 3 | 16 |
如何選擇以這樣一種方式,它並沒有顯示數據這一數據,但最後的時間戳之間的差別,就像這樣:
| TimeStamp | Data |
| 1 | 2 |
| 2 | 6 |
| 3 | 8 |
我有一張表格,每5分鐘更新一次數據。當前時間戳與之前時間戳之間的差異
| TimeStamp | Data |
| 1 | 2 |
| 2 | 8 |
| 3 | 16 |
如何選擇以這樣一種方式,它並沒有顯示數據這一數據,但最後的時間戳之間的差別,就像這樣:
| TimeStamp | Data |
| 1 | 2 |
| 2 | 6 |
| 3 | 8 |
如果戈登設想的情景物化,那麼你可以做這樣的事情...
SELECT x.timestamp
, x.data-COALESCE(MAX(y.data),0) data
FROM my_table x
LEFT
JOIN my_table y
ON y.timestamp < x.timestamp
GROUP
BY x.timestamp;
如果時間戳沒有間隙(如問題中的示例所示):
select t.timestampe,
t.data - coalesce(tprev.data, 0) as data
from table t left outer join
table tprev
on t.timestamp = tprev.timestemp + 1;
如果您有空隙,這可能無法按照您的方式工作。
有似乎是一個問題,當有差距。如果我在一段時間內收到0數據,最終會得到負數據和關閉數字。任何有關如何解決這個問題的建議? – zlack
我建議你發佈一個sqlfiddle來展示問題。 – Strawberry