【发布时间】:2019-03-28 02:38:05
【问题描述】:
我需要将下面的 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、statistic_id、value、year 属性。 ActiveRecord 查询旨在获取每个城市和统计数据的最近几年的统计值,并返回一个ActiveRecord::Relation 对象。
【问题讨论】:
标签: ruby-on-rails