2013-02-20 34 views
7

我正在构建库存数据库,并且它有2列,我希望按(制造商和型号)进行分组。我将如何按这些列进行分组并提供项目组的总和?如何按两列分组并提供分组项目的总和

例如:

Qty Manufacturer Model 
1 Sony   MF-2002 
1 Sony   MF-2002 
1 Planar  PL2410W 
1 Planar  PL2410W 
1 Planar  PL2410W 
1 Planar  PL3610D 
1 Planar  PL3610D 

结果:

Qty Manufacturer Model 
2 Sony   MF-2002 
3 Planar  PL2410W 
2 Planar  PL3610D 

回答

9

假设一个Item模型时,可以传递一个阵列到group方法如下:

Item.group(["manufacturer", "model"]).sum(:qty) 
# => {["Planar", "PL2410W"]=>3, ["Planar", "PL3610D"]=>2, ["Sony", "MF-2002"]=>2}