У меня есть заявление MySQL, которое заняло у меня всю ночь.Мне интересно, можно ли эту вещь превратить из прямого вызова в нечто вроде Object.find (: условия)
ActiveRecord::Base.connection.execute("
SELECT *,
(SELECT COUNT(*)
FROM scores AS temp2
WHERE temp2.score > scores.score
ORDER BY score DESC) + 1 AS rank
FROM scores
WHERE user_id=%s
ORDER BY score DESC"
% user_id).fetch_hash
Это утверждение является частью сайта с высокими показателями, созданного для игры для Android.Он получает высший балл и имеет подзапрос, который также дает ему рейтинг.
Может ли это быть сделано во что-то более приятное?Кроме того, это самый эффективный метод?
Спасибо, Джастин