我试图找出在某一天创建了多少条记录,以获得类似的内容:
User uploaded 5 objects two days ago
User uploaded 12 objects 21 days ago
我试过了:
Flight.group("created_at::date")
但得到错误:
ActiveRecord::StatementInvalid: PG::GroupingError: ERROR: column "flights.id" must appear in the GROUP BY clause or be used in an aggregate function
但是当我尝试将id
直接添加到群组字段或添加其他.group
时,我最终会对id
和created_at
进行分组,这显然因为每个匹配只有一个实例,所以不会对任何内容进行分组。
我在这里缺少什么?
答案 0 :(得分:1)
如果您正在尝试计算事物,请计算它们:
Flight.group('created_at::date').count
这将为您提供一个哈希,其中日期为键,并计为值。否则,数据库不知道应该使用组中各行的哪些值来表示该组。如果添加count
聚合函数,则模糊性消失,数据库知道您希望它做什么。