Мне нужно преобразовать приведенный ниже SQL-запрос в выражение запроса активной записи. Я сталкивался с рядом связанных постов, которые включают в себя объединение двух разных моделей с использованием .joins()
, но в этом случае я присоединяюсь к модели с ее подмножеством. В частности, я не смог найти способ выразить SELECT a.some_column, ... FROM my_model a
SELECT a.city_id, a.statistic_id, a.value, a.year
FROM city_values a
INNER JOIN (
SELECT city_id, statistic_id, MAX(year) AS year
FROM city_values
GROUP BY city_id, statistic_id) b
ON a.city_id = b.city_id AND a.year = b.year and a.statistic_id =
b.statistic_id
ORDER BY city_id, statistic_id;
У меня есть модель с именем CityValue, соответствующая данным для разных городов, статистике и годам. Модель имеет атрибуты city_id, statistics_id, значение, год. Запрос ActiveRecord предназначен для получения значений статистики за последние годы для каждого города и статистики и возврата объекта ActiveRecord::Relation
.