在我的应用中,用户每周五为组织保存一份报告。报告表中的所有记录都包含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。
我怎样才能做到这一点?
答案 0 :(得分:0)
这就是你在寻找什么
How to get the latest record from each group in ActiveRecord?
User.group(:user_id).having('day = MAX(day)')