私はこれで数時間無駄になりましたが、髪を引っ張っています。
編集: 各ユーザーの最大の「ゲイン」を計算するために、1 日前の同じデータを使用して、overall_exp 列の差を計算したいと考えています。
現在、私は行を取り、最初の行のタイムスタンプに基づいて1日前から行を選択し、2行からoverall_exp列を減算し、user_idでグループ化しながらその結果で並べ替えます
SQL フィドル: http://sqlfiddle.com/#!2/501c8
これが私が現在持っているものですが、ロジックが完全に間違っているため、0の結果を取得しています
SELECT rsn, ts.timestamp, @original_ts := SUBDATE( ts.timestamp, INTERVAL 1 DAY), ts.overall_exp, ts.overall_exp - previous.overall_exp AS gained_exp
FROM tracker AS ts
INNER JOIN (
SELECT user_id, MIN( TIMESTAMP ) , overall_exp
FROM tracker
WHERE TIMESTAMP >= @original_ts
GROUP BY user_id
) previous
ON ts.user_id = previous.user_id
JOIN users
ON ts.user_id = users.id
GROUP BY ts.user_id
ORDER BY gained_exp DESC