使用groupdate gem:https://github.com/ankane/groupdate
我只是使用'group_by_day_of_week',并尝试输出结果,并得到此错误:
ActionView::Template::Error (PG::GroupingError: ERROR: column "warehouse_campaigns.id" must appear in the GROUP BY clause or be used in an aggregate function
这是代码:
@campaigns = WarehouseCampaign.group_by_day_of_week(:date_sent)
然后在HAML中:
- @campaigns.each do |r|
= r.title
注意,我不想简单地记录计数,我想列出每个组的实际记录。我已经搜索了一个小时的解决方案。这是postgres特有的吗?
您可以使用上述查询获取groupdate gem的聚合计数。如果要根据星期几值对记录进行分组,则必须相应地触发数据库查询。
@campaigns = WarehouseCampaign.all.group_by { |x| x.date_sent.wday }
这将根据星期几(wday)对记录进行分组,您可以迭代记录。
如果您只想获得聚合计数,您可以简单地执行此操作,
@counts = WarehouseCampaign.group("EXTRACT(DOW FROM date_sent)").count
希望能帮助到你 !