Rails:选择每个月的最大日期

时间:2017-03-07 17:56:01

标签: ruby-on-rails postgresql activerecord

在我的应用中,用户每周五为组织保存一份报告。报告表中的所有记录都包含organization_id,day和workdays。

我希望得到每月上周五所有工作日的总和。

通过以下行,我可以为组织#8选择所有报告,为每个星期五选择工作日

@all_report_sums = Report.where(:organization_id => 8).group(:day).select("day, SUM(workdays) AS sum_workdays")

结果

[{"id":null,"day":"2017-02-03","sum_workdays":3},{"id":null,"day":"2017-02-24","sum_workdays":33},{"id":null,"day":"2017-04-07","sum_workdays":12}]

但是在我的输出中我只想要每个月的最大日期(这是每个月的最后一个星期五) - 所以在我的情况下这将是2017-02-24和2017-04-07。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

这就是你在寻找什么

How to get the latest record from each group in ActiveRecord?

User.group(:user_id).having('day = MAX(day)')