こんな感じのテーブルがあります
id | name | c1 | c2 | c3 | c4 | time
-------------------------------------------------
1 | miley | 23 | 11 | 21 | 18 | 2013-01-13 20:26:25
2 | john | 31 | 29 | 23 | 27 | 2013-01-14 20:26:25
3 | steve | 44 | 31 | 33 | 35 | 2013-01-14 20:26:25
4 | miley | 34 | 44 | 47 | 48 | 2013-01-15 08:26:25
5 | john | 27 | 53 | 49 | 52 | 2013-01-15 08:26:25
6 | steve | 27 | 62 | 50 | 64 | 2013-01-16 08:26:25
7 | miley | 44 | 54 | 57 | 87 | 2013-01-16 20:26:25
8 | john | 37 | 93 | 59 | 62 | 2013-01-17 20:26:25
9 | steve | 85 | 71 | 87 | 74 | 2013-01-17 20:26:25
...etc
*注: これは、テーブルがどのように見えるかを示すために作成したランダムなテーブルです
特定の日付範囲で特定の列に最大の変化があった人の名前を取得する必要があります。私は、1つを機能させることができないという理由で、さまざまなクエリを試しました。私の最も近い解決策は次のようなものだと思います...
SELECT table1.name, MAX(table1.c1-h.c1) as maxDiff
FROM table_a as table1
LEFT JOIN table_a as table2
ON table2.name=table1.name AND table1.c1>table2.c1
WHERE table2.c1 IS NOT NULL
私は何を間違っていますか?明確にするために、日付の範囲を選択して、決定された列でその日付範囲の最大の違いを誰が持っているかを判断できるようにしたいと考えています。また、データは時間の経過とともに増加することにも注意してください。そのため、任意の日の最初のキャプチャは常に、その人物のその日の最後のキャプチャになります。