select
url,
sum(timestamp between subdate(now(), interval 2 hour) and subdate(now(), interval 1 hour)) * .3 +
sum(timestamp between subdate(now(), interval 1 hour) and now()) * .7 as rank
from whatever_your_table_name_is_which_you_have_kept_secret
where timestamp > subdate(now(), interval 2 hour)
group by url
order by rank desc;
sum(condition)
работает, потому что в mysql trye
равно 1
, а false
равно 0
, поэтому суммирование условия такое же, как и то, что некоторые нубы пишут как sum(case when condition then 1 else 0 end)
Редактировать:
Обратите внимание на добавление where timestamp > subdate(now(), interval 2 hour)
для повышения производительности, поскольку только эти записи вносят вклад в результат.