@lexstile

Как правильно написать sql-запрос?

Есть БД: users
У каждого пользователя есть поля: id, points (количество баллов) и upd (дата последнего обновления баллов, в секундах)
Необходимо написать запрос на выборку 10 пользователей (вернуть id и points), у которых больше всего баллов за последнюю неделю.
Если у пользователей одинаковое количество баллов, выше (ближе к 1 месту) будет находится пользователь, у которого был более поздний апдейт поля upd.
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
@zexer
1. Конвертировать неделю в секунды (7*24*60*60)
2. Определить секунду, с которой нужно брать данные и сделать фильтрацию (WHERE upd >= (now(в секундах) - 7*24*60*60))
3. Выбрать топ 10 (LIMIT 10 or TOP 10, а зависимости от СУБД)
4. Сделать сортировку по points desc, upd desc
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@lexstile Автор вопроса
Спасибо большое!
Забыл про upd desc.
И не догадался, что можно использовать ф-цию now.
Ответ написан
Ваш ответ на вопрос

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

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