@AibekAS

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

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


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

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

Войти через TM ID
Похожие вопросы
Вакансии с Моего Круга Все вакансии
Заказы с Фрилансим Все заказы