假设我有一个rails模型,Table,方法location,a1,a2,a3
我有一个表格
的postgresql查询SELECT avg(val) FROM (
SELECT unnest(array[a1,a2,a3]) as val FROM table WHERE location = 'USA') alias;
我想使用activerecord而不是原始SQL来进行,主要是因为我希望能够将查询拆分为可链接的,如下所示:
Table.where(location: 'USA').select(...)
(原因是我希望将上面的postgresql查询作为方法移到模型中。)
有什么办法可以做到吗?
答案 0 :(得分:3)
Table.from(
Table.where(location: 'USA').select('unnest(array[a1,a2,a3]) as val'),
'subquery_name'
).average('subquery_name.val')
现在,为了了解上述查询的作用,请研究以下ActiveRecord
方法: