ruby - 来自 created_at 的不同天数的 ActiveRecord 计数?

标签 ruby ruby-on-rails-3 activerecord

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

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

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

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

一个简单的 ActiveRecord 示例来解释我的意图:

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

(我知道字符串 'created_at' 不是 'Time',但这是我想询问 ActiveRecord 的那种查询。)

最佳答案

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

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

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

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

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

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

关于ruby - 来自 created_at 的不同天数的 ActiveRecord 计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14547051/

相关文章:

ruby - 检测 ruby​​ 是否在 Windows 上运行的正确方法是什么?

ruby - 必须与 gtk_builder_new_from_resource 一起使用的资源路径是什么?

ruby-on-rails - .change 函数不适用于 ruby 中偶数月的日期

c# - 事件记录/NHibernate : Update error on Query

mysql - 在现有数据库上使用 Ruby on Rails - 简单的控制台测试会生成错误?

ruby-on-rails - 如何在 Rails 中设置日期时间格式

ruby - 使用 array.map(& :gsub) 时出错

ruby-on-rails-3 - 如何在 Rails 3 中实现 aasm 来实现我想要的功能?

ruby-on-rails - 延迟工作未定义方法 `to_datetime'为假:FalseClass

ruby-on-rails - 通过 id 检查用户权限的最佳方法?