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

あなたが選択で2つのサブクエリを使用することができますが、自動インクリメント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; 

がニーズに従ってORDER BY句を調整します。

Demo on rextester

+0

ありがとうございました。シンプルはいつもより良い –

関連する問題