3

如果需要查询字段(理想情况下,单独使用 ActiveRecord),是否可以根据字段值检索不同记录的计数?

例如,以下基于“created_at”字段返回唯一记录的计数:

Record.count('created_at', :distinct => true)

但是,是否有可能以类似的方式根据“created_at”字段计算唯一天数?

一个天真的 ActiveRecord 示例来解释我的意图是:

Record.count('created_at'.day, :distinct => true)

(我知道字符串“created_at”不是“时间”,但这是我想问 ActiveRecord 的那种查询。)

4

1 回答 1

5

您需要对记录进行分组。例如

Record.group('DATE(created_at)').count('created_at')

告诉您在每个特定日期创建的行数,或

Record.group('DAYOFWEEK(created_at)').count('created_at')

会告诉你在一周中的每一天创建的行数。

请注意,使用通常的活动记录设置,这将在 UTC 中进行日期计算,如果您想在特定时区进行计算,则必须将该转换添加到组语句中。

于 2013-01-27T12:08:37.883 回答