Sql 获取记录之间差异的最佳方法是什么;柱
我有一个模型Sql 获取记录之间差异的最佳方法是什么;柱,sql,ruby-on-rails,ruby,activerecord,Sql,Ruby On Rails,Ruby,Activerecord,我有一个模型计数器记录和列数据。记录列表: r1.data = 10 r2.data = 12 r3.data = 15 r4.data = 20 我想了解当前记录和以前记录之间的差异[10,2,3,5]。Rails是否有默认的方式来实现这一点 rails是否有默认的方式来实现这一点 没有 可能的解决办法: CounterRecord.pluck(:data).each_cons(2).map { |first, second| second - first } 注意:对于大量记录,这将很
计数器记录
和列数据
。记录列表:
r1.data = 10
r2.data = 12
r3.data = 15
r4.data = 20
我想了解当前记录和以前记录之间的差异[10,2,3,5]
。Rails是否有默认的方式来实现这一点
rails是否有默认的方式来实现这一点
没有
可能的解决办法:
CounterRecord.pluck(:data).each_cons(2).map { |first, second| second - first }
注意:对于大量记录,这将很容易破坏您的内存。我不认为
Rails
或ActiveRecord
有这样的东西,但使用少量ruby就可以很容易地做到:
CounterRecord.pluck(:data).each_with_index.map { |c,i| a[0] == c ? c : (a[i-1].to_i - c).abs }
这样做没有默认方法。我认为Rails没有默认方法。您需要使用普通SQL。@Ilya true。EditedI之前尝试过
每个切片
,但它没有给出所需的输出。.你执行了吗?@Md.FarhanMemon,也许你应该使用。在每个切片
之后使用@Ilya到a
在这里不需要。不,问题在于切片
本身<代码>[10,12,15,20]。每个\u片(2)。to\u a
返回[[10,12],[15,20]]
,所需内容如下[[10,12],[12,15],[15,20]]