两个连续行中的最大列差异

时间:2017-11-01 13:06:02

标签: ruby-on-rails postgresql ruby-on-rails-4 activerecord rails-activerecord

我正在使用PostgreSQL数据库工作Rails应用程序。 我有表命名上传,有这样的记录

ID   media_count  created_at
1    10           01-01-2017   
2    12           02-01-2017
3    20           03-01-2017
4    25           04-01-2017

我需要找出任何连续行中media_count的最大差异

与上述情况类似,这些行的差异 8

ID   media_count  created_at
2    12           02-01-2017
3    20           03-01-2017

我不知道如何进行此类查询。

1 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:

Upload.all.each_cons(2).max_by { |x1, x2| x2.media_count - x1.media_count }

我假设连续性由id列决定(如果不是,则需要用all方法替换order方法,提供明确的列名和升序排序声明,例如order(created_at: :asc))。