以下のデータに基づいて、1 時間あたりの使用量を知りたいです。
TIME DATA
00:00:24 3198
00:17:42 3199
00:44:54 3200
01:24:24 3201
01:52:24 3202
02:27:18 3203
02:51:06 3204
03:28:30 3205
次のようなクエリを使用する場合:
SELECT
left(TIME,2) AS hour,
max(DATA) - min(DATA) as usage
FROM my_table
GROUP BY hour
MySQL は最大値と比較して時間範囲の最小値のみを参照するため、誤った値が取得されます。結果は次のとおりです。
hour usage
00 2
01 1
02 1
03 0
データを手動で見て、それを手で合計すると、次のようになります。
TIME DATA Usage (summed by hand)
00:00:24 3198
00:17:42 3199
00:44:54 3200 2
01:24:24 3201
01:52:24 3202 3
02:27:18 3203
02:51:06 3204 2
03:28:30 3205 1
これを MySQL で直接解決する方法はありますか、それとも PHP でループを作成する必要がありますか? (編集されたクエリと明確化された結果と期待される結果)