Как получить разницу между двумя полями в одной таблице между соседними датами?
select u1.id, (u1.score - u2.score) as score from `users` as `u1`
inner join `users` as `u2` on `u1`.`earned_at` = DATE_SUB(u2.earned_at, INTERVAL 1 DAY)
where `u1`.`earned_at` = '2018-01-13'
В базе `earned_at` = '2018-01-13' всего 21 записей. Но в результате приходит 420 записей.
UPD: проблема запроса, что он должен возвращать 21 записей(в данном примере). А разницу вычисляет верно.