gpt4 book ai didi

ruby-on-rails - 将聚合函数 SUM 与 GROUP BY 一起应用

转载 作者:数据小太阳 更新时间:2023-10-29 07:25:49 27 4
gpt4 key购买 nike

在 Active Record/Ruby on Rails 中执行此查询的最佳方式是什么

SELECT sum(amount) 作为 total_amount FROM payments GROUP BY person_id, product_id

我似乎无法将 sumgroup 方法链接起来。我必须在这里求助于 find_by_sql 吗?

最佳答案

类似于:

Payment.group(:person_id).group(:product_id).sum(:amount)

应该给你一个散列,其键是 [person_id, product_id] 数组,其值是总和。您可能不想:

Payment.group('person_id, product_id').sum(:amount)

虽然,这可能会给您正确的总和,但哈希的键没有多大意义。

你也可以说:

Payment.sum(:amount, :group => 'person_id, product_id')

但这会像 Payment.group('person_id, product_id').sum(:amount) 那样在键中遭受相同的脑损伤;但是,:group 的数组:

Payment.sum(:amount, :group => [ :person_id, :product_id ])

应该产生与双 .group 版本相同的带有数组键的散列。但是,sum:group 形式在 Rails4 中已弃用(感谢 Ganeshwara Herawan Hananda Put 注意到这一点)。

上面的代码在 Rails3 中运行良好,我认为没有理由在 Rails4 中不起作用。我手头没有 Rails4 安装程序,所以无法验证。

关于ruby-on-rails - 将聚合函数 SUM 与 GROUP BY 一起应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20257223/

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