计算两个日期之间的差异并对结果进行分组和计数

时间:2016-01-08 16:37:36

标签: ruby-on-rails ruby postgresql activerecord

如果我有一个包含字段date_completed的表格。我想计算这个日期和现在的时间之间的差异

(date_completed.year * 12) + date_completed.month - (Date.today.year * 12) + Date.today.month

然后根据月数对结果进行分组,例如

No Months => Count
1         =>  10
2         =>   5
3         =>   6

是否可以计算数据库中两个日期之间的差异,然后对结果进行分组和计数?

1 个答案:

答案 0 :(得分:1)

Postgre-SQL特定的SQL查询将如下所示 - 它使用PostgreSQL的extractage方法(参考Documentation

select extract(year from age(date_completed)) * 12 + 
         extract(month from age(date_completed)) as months, 
       count(*) from learn group by months;

示例输出:

"months"|"count"
       2|     2 
       3|     1
       4|     1

我上面使用了一个表learn,您需要将其更改为您拥有的表名。