使用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特有的吗?
答案 0 :(得分:0)
您可以使用上述查询获取groupdate gem的聚合计数。如果要根据星期几值对记录进行分组,则必须相应地触发数据库查询。
@campaigns = WarehouseCampaign.all.group_by { |x| x.date_sent.wday }
这将根据星期几(wday)对记录进行分组,您可以迭代记录。
如果您只想获得聚合计数,可以直接执行此操作,
@counts = WarehouseCampaign.group("EXTRACT(DOW FROM date_sent)").count
希望它有所帮助!