使用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的吗?
发布于 2018-03-06 16:55:48
您可以使用前面提到的查询使用groupdate gem获取聚合计数。如果您希望根据星期几对记录进行分组,则必须相应地触发DB query。
@campaigns = WarehouseCampaign.all.group_by { |x| x.date_sent.wday }这将根据星期几数字(wday)对记录进行分组,您可以迭代记录。
如果您只想获得聚合计数,您可以简单地这样做:
@counts = WarehouseCampaign.group("EXTRACT(DOW FROM date_sent)").count希望它能帮上忙!
https://stackoverflow.com/questions/49119172
复制相似问题