我已经在这里待了几个小时,但无济于事,把头发拉了出来。
编辑:我想通过使用 1 天前的相同数据来计算每个用户的最大“收益”,从而计算整体 exp 列之间的差异
目前我正在取一行,然后根据第一行时间戳从 1 天前选择一行,然后从 2 行中减去 total_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