2013-02-20 25 views
7

Buduję bazę danych inwentaryzacji i ma 2 kolumny, które chciałbym grupować według (producenta i modelu). Jak pogrupować według tych kolumn i podać sumę grupy elementów?jak pogrupować według dwóch kolumn i podać sumę zgrupowanych pozycji

Na przykład:

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 

Wynik:

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

Odpowiedz

9

Zakładając model Item można przekazać tablicę do sposobu group następująco:

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