2017-05-07 83 views
0

我試圖找到列中最後2個值之間的差異。 這是我想要實現的;計算1列中最後2條記錄之間的差異

Select abs(water1-water2)/60 
from (select dec_pw_water_reset from timer_table order by desc limit 1 as water1) t1 
join 
(select dec_pw_water_reset from timer_table order by desc limit 1,1 as water2) t2 
+1

「order by desc」? – GurV

+0

您可以發佈您使用的表格的結構,它會有所幫助。 –

+0

@GurV的答案很好,但只是一個小指針,可以幫助你:即使行在技術上是按照給定的順序排列的,爲了幫助你處理數據,你應該假設除非你使用*命令通過*,行是未排序的。 (另外,它們實際存儲的順序可能會改變。) – Tipx

回答

3

假設你有一個自動遞增ID列,你可以在選擇使用兩個子查詢:

select abs(
    (select dec_pw_water_reset from timer_table order by id desc limit 1) - 
    (select dec_pw_water_reset from timer_table order by id desc limit 1, 1) 
    )/60 as diff; 

by子句按您的需求調整順序。

Demo on rextester

+0

謝謝,效果很好。簡單總是更好 –