如果需要询问字段(理想情况下,仅使用ActiveRecord),是否可以根据字段值检索不同记录的计数?
例如,以下内容根据“created_at”字段返回唯一记录的计数:
Record.count('created_at', :distinct => true)
但是,是否可以以类似的方式根据'created_at'字段计算,例如,唯一天数?
一个天真的ActiveRecord示例来解释我的意图:
Record.count('created_at'.day, :distinct => true)
(我知道字符串'created_at'不是'时间',但这是我想询问ActiveRecord的那种查询。)
答案 0 :(得分:4)
您需要对记录进行分组。例如
Record.group('DATE(created_at)').count('created_at')
告诉您在每个特定日期创建的行数,或
Record.group('DAYOFWEEK(created_at)').count('created_at')
会告诉您一周中各个日期创建的行数。
请注意,使用通常的活动记录设置,这将以UTC格式进行日期计算,如果您想在特定时区进行计算,则必须将该转换添加到组声明中。