私の家に太陽光発電のデータを格納するMYSQLテーブルがあります。この表のデータを構成する2つのインバータ装置がポーリングしています。私は私がで生成されたどのくらいのエネルギーを伝えることができるように、インバータあたりの連続記録の違いを見つけようとしています連続して格納されていないSQLレコードの違いを見つける
id <auto_increment>
addr <int address of the inverter>
etotal <total generation since the device has been online>
:何かのように簡素化するために、(説明を)私のテーブル構造の適切な部分がありますレコード間の期間(または最終的に選択した期間)。
SELECT (t2.etotal - t1.etotal) AS eperiod
FROM solars AS t1, solars AS t2
WHERE t1.id+2 = t2.id AND t1.created_at >= CURDATE()
AND t1.addr = 245 AND t2.addr = 245 ORDER BY t1.id;
しかし、これは常に必要に応じて機能していない、そしてそれはお粗末な選択のように思える:レコードが一貫して挿入された場合は、私のような何かを行うことができます。私が持っていた唯一の他の考えは、自動インクリメントのIDを持つ一時テーブルを選択し、そのテーブルから同様の選択を行うことです。可能であれば、単一のクエリソリューションに興味があります。
+1太陽エネルギーを使用します。 – Quassnoi