我有一个日期字段(Model.expires_on
),我需要按月对记录进行分组并获得Model.amount
字段的总和。我可以:
Model.all.group(:expires_on).sum(:amount)
但是当我试图按月分组时,我无法得到它。我试过了:
Model.all.group(:expires_on.month).sum(:amount)
对于Postgresql,这应该可以工作
Model.group("date_part('month',expires_on)").select("date_part('month',expires_on) as expiration_month ,sum(amount) as sum_amount")
你也可以使用取决于你的SQL提供程序,因为Postgresql没有一个月函数
Model.group("MONTH(expires_on)").select("MONTH(expires_on) as expiration_month,sum(amount) as sum_amount")
此集合中的对象将响应expiration_month
和sum_amount
知道这将合并所有月份,而不管年份