@danchikraw
Веб-додик

Как вывести два топа по разным датам?

У меня есть запрос который выводит топ пользователей по сумме за 24ч, как мне вместе с ним выводить ещё и за месяц? Чтобы это было в одном запросе.
SELECT `id_user`, SUM(`sum`) `sum`, users.name FROM `balance_history` INNER JOIN `users` ON `id_user` = users.id WHERE balance_history.date >= NOW() - INTERVAL 1 DAY AND `type` = 'plus' GROUP BY `id_user` ORDER BY `sum` DESC LIMIT 5
  • Вопрос задан
  • 29 просмотров
Пригласить эксперта
Ответы на вопрос 1
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Например так:
SELECT 
  `id_user`, 
  SUM(IF(`balance_history`.`date` >= NOW() - INTERVAL 1 DAY, `sum`, 0)) `sum_24h`, 
  SUM(`sum`) `sum_1mnth`, 
  `users`.`name` 
FROM  `balance_history` 
INNER JOIN `users` ON `id_user` = users.id 
WHERE `balance_history`.`date` >= NOW() - INTERVAL 1 MONTH AND `type` = 'plus' 
GROUP BY `id_user` 
ORDER BY `sum` DESC 
LIMIT 5;
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы