Задать вопрос
@anlamas

Как получить разницу между двумя полями в одной таблице между соседними датами?

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 записей(в данном примере). А разницу вычисляет верно.
  • Вопрос задан
  • 807 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
solotony
@solotony
покоряю пик Балмера
я делаю вот так:
SET @tt = '0000-00-00';
SELECT `id`, `ti`, @tt as `ti2`, TIMEDIFF(`ti`, @tt) , @tt:=`ti` FROM `tm` WHERE 1


тут я считаю разницу между датами, но механизм, полагаю, понятен
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы