2017-05-07 78 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

谢谢,效果很好。简单总是更好 –