gpt4 book ai didi

ruby-on-rails - rails 3 group by 和 sum

转载 作者:行者123 更新时间:2023-12-03 23:32:45 26 4
gpt4 key购买 nike

我有以下模型:

activity_types: id, name

activities: id, id_activity_type, occurrences, date (other fields)

事件表存储事件每天发生的次数。但现在我想向用户显示每个月发生的每种类型的事件数量。

我得到了以下解决方案 based on this post这似乎没问题:
Activity.all(:joins => :activity_types,
:select => "activity_types.id, activity_types.name, SUM(activities.occurrences) as occurrences",
:group => "activity_types.id, activity_types.name",
:order => "activity_types.id")

但这似乎有很多 Rails 标准和 rails API says it's deprecated 的代码.

我发现以下解决方案非常简单:
Activity.sum(:occurrences).group(:activity_type_id)

它返回一个带有 的哈希值事件类型 ID => 出现。

我该怎么做才能获得以下哈希值: 事件类型名称 => 出现?

最佳答案

如果原始查询有效,那么只需尝试使用 Rails 3 语法重写它:

Activity.joins(:activity_types)
.select("activity_types.id, activity_types.name, SUM(activities.occurrences) as occurrences")
.group("activity_types.id, activity_types.name")
.order("activity_types.id")

关于ruby-on-rails - rails 3 group by 和 sum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9068926/

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