从数据库中选择,分组和求和结果
我有一个数据库,其中包含一些我要总结的字段。 但这不是大问题,我想按照它们创建的月份对这些字段进行分组。 ActiveRecord自动创建了一个名为“created_at”的字段。 所以我的问题; 如何按月对结果进行分组,然后对每个月的字段求和?
更新了代码
@hours = Hour.all(:conditions => "user_id = "+ @user.id.to_s, :group => "strftime('%m', created_at)", :order => 'created_at DESC')
这是我现在的代码。 管理按月分组,但不能总结我的两个字段,“分钟”和“薪水”我需要总结
您可以使用活动记录计算来执行此操作。 一些示例代码可能是
Model.sum(:column_name, :group => 'MONTH("created_at")')
显然,有一点需要注意,MONTH是特定于mysql的,所以如果你在SQLite数据库上进行开发,这将无法正常工作。
我不知道您是否使用SQL查询来执行此操作(不更改当前的表结构)。 但是,您可以使用一些代码行。
records = Tasks.find(:conditions => {..}) month_groups = records.group_by{|r| r.created_at.month} month_groups.each do |month, records| sum stuff.. blah blah blah.. end
我在这个问题的右侧看到了这个链接。 我假设除了MySQL之外的其他数据库也有类似的function。
mysql按日期选择sum group
通过使用以下方法修复它:在获取查询时选择,输入手动选择
@hours = Hour.all(:conditions => "user_id = "+ @user.id.to_s, :select => "created_at, SUM(time) time", :group => "strftime('%m', created_at)", :order => 'created_at DESC')
- rails关联方法如何工作?
- Rails will_paginate在HABTM模型上显示重复项
- Ruby on Rails ActiveRecord“has_many:through”唯一性validation
- Rails:从另一个模型调用一个模型。 为什么这不可能?
- HMT collection_singular_ids =删除连接模型是直接的,不会触发销毁回调
- Rails连接并包含连接表中的列
- Rails .reject将类型ActiveRecord :: Relation转换为类型数组
- Rails ActiveRecord:回滚保存嵌套模型
- 如何在Rails之外的多环境中使用ActiveRecord?