在 Rails 中的数据库字段之间查找 average/min/max 操作

Find average/min/max of operation between database fields in Rails

SQL 和 ORM 相对较新。

假设我有一个数据库 table,其中包含 start_at 和 finish_at 字段(均为日期时间)。 Table 例如包含 10000 个项目。

如何使用 ruby 或 Active Record 工具计算平均值,max/min 持续时间(finish_at - start_at)?不用写在什么地方,只要有数字就可以了。

table = MyClass.arel_table
duration = table[:finish_at] - table[:start_at]
MyClass.pick(duration.maximum, duration.minimum, duration.average)
#=> ["125 days 20:46:34.05816", "00:00:00.063579", "20 days 23:30:16.221092"]

根据需要将它们转换为另一种数据类型或直接在其他查询中使用。