gpt4 book ai didi

ruby-on-rails-3 - ruby on Rails 3 可以在一个查询中检索多列的总和吗?

转载 作者:行者123 更新时间:2023-12-03 00:26:08 25 4
gpt4 key购买 nike

我想获得表中十几列的总和。

# result will be {:a => 340.5, :b => 21.8, ... }
# where :a has the sum of the :a column values
# entries is an ActiveRecord model, e.g. ScoreCard.where(:user => user)
def self.totals(entries)
[:a, :b, :c, :d, :e, :f, :g, :h, :i, :j, :k, :m].inject({}) do |tv, col|
tv[col] = entries.sum(col)
tv
end
end

有没有办法在一个查询中做到这一点?上面生成了十几个查询。

最佳答案

您可以通过手动覆盖 select 值来执行某些操作,如下所示,这将运行一个查询,将所有总和作为字段返回:

sums = entries.select("sum(a) as a, sum(b) as b, ....").first
tv[:a] = sums[:a]
tv[:b] = sums[:b]
# etc....

关于ruby-on-rails-3 - ruby on Rails 3 可以在一个查询中检索多列的总和吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7034892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com