2012-01-15 72 views
25

例子,我有:Rails如何总结列?

@test = Pakke.find([[4], [5]]) 

在我Pakke表我有一个名为列prismd

如何总结这两个数值为prismd 列@Test?

+0

你一定要带一些订单到您的阵列。这是非常令人困惑什么你实际上是试图做的,只是尝试,直到它似乎是工作没有做到这一点的最好办法。而是试着去思考你真正想要达到的目标,并相应地组织你的数据结构。也分裂了您的实际问题,在5个或更多的问题,这里将帮助不大.... – 2012-01-16 00:05:31

+0

我会尽力。这是有点复杂,我想要做的。只知道我主要希望它的工作,因为它花了很多时间找到正确的解决方案。 – 2012-01-16 00:13:46

回答

42

您可以直接在数据库中创建相应的SQL这样总结有关更多使用示例和一般文档,请参见ActiveRecord::Calculations

1
Pakke.find([[14], [15]]).map(&:prismd).sum 
23

的ActiveRecord有一堆内置的计算方法,包括sum

Pakke.sum(:prismd, :conditions => {:id => [4,5]}) 

@test = Pakke.where(:id => [4, 5]).sum(:prismd) 
+3

仅供参考,**不要**使用'的.sum(:prismd)'。这将通过Ruby完成计算。做@约旦说会通过SQL来完成计算,并且**很**,** **更快。 – 2014-12-07 17:53:18

1

测试= Order.where(potential_student_id:potential_student.id)的.sum( “TOTAL_PRICE”);

+4

你能多解释一下吗? – 2017-01-12 08:31:49

+0

Pakke.where(ID:[4,5])。总和( “prismd”) – KevinLi 2017-01-14 04:52:22