【问题标题】:Group by Sum and Count of Table Records Rails按表记录的总和和计数分组 Rails
【发布时间】:2016-06-04 13:33:08
【问题描述】:

所以我有一张表,上面有不同日期和金额的列表。

e.g. 
Date               Amount 
2/1/2015           200
3/2/2015           300
7/2/2015           350
8/1/2015           400 

我希望能够编写一个查询,该查询返回按月分组的金额总和。

So e.g. Jan 600, Feb 650 

我如何在 Rails 中做到这一点? sql

【问题讨论】:

    标签: mysql sql ruby-on-rails arel


    【解决方案1】:

    您可以使用这样的查询:

    SELECT
      DATE_FORMAT(date_field,'%Y - %b') AS the_date , 
      SUM(val_field) AS total
    FROM your_table
    GROUP BY  DATE_FORMAT(date_field,'%Y - %b')
    ORDER BY  DATE_FORMAT(date_field,'%Y - %b');
    

    【讨论】:

    • 可以在rails查询中写这个吗?
    【解决方案2】:

    您可以按如下方式对 rails 中的表格进行分组和求和:

    Model.sum(:amount, :group => 'MONTH("date_column")')
    

    这里是有关 ActiveRecord 计算的更多信息的链接:http://api.rubyonrails.org/classes/ActiveRecord/Calculations.html

    编辑:将代码更改为 date_column 以更清晰

    【讨论】:

    • Month("date") 是特定于 mysql 的查询。此外,date 应替换为表中的日期列名称。此外,您需要将Modelamount 替换为相关名称。我已将代码更改为 Month("date_column") 以更清晰
    猜你喜欢
    • 2023-01-25
    • 2010-10-01
    • 2015-06-30
    • 2012-07-29
    • 2019-12-01
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多