【发布时间】:2014-05-13 05:10:53
【问题描述】:
假设我有一个 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查询作为方法移动到模型中。)
有什么办法可以做到吗?
【问题讨论】:
-
不安?什么?你到底想做什么?如果没有更好的方法来编写该查询,则应将其保留在原始 SQL 中。
-
unnest(array(... 采用 a1,a2,a3 并创建一组整数,可以使用内置的 postgres 聚合函数(avg、stddev_samp 等))
标签: ruby-on-rails ruby activerecord ruby-on-rails-4