SELECT user.id, count(*) as numbers_of_group
FROM user
JOIN user_group
ON user_group.user_id = user.id
GROUP BU user.id
ORDER BY numbers_of_group DESC
LIMIT 2
Вы не можете написать запрос вхождение одного интервала времени в другой?
Если так то гугл в помощь: sql вхождение даты в интервал
Или вы не можете реализовать скрипт который каждую минуту запускается?
Если так то гугл в помощь : cron