나는 판매 된 회사를 기준으로 제품 판매 단위의 평균을 계산해야하는 경우가 있습니다. 거기에서 나는 판매 된 단위에 대한 백분율 차이를 계산할 것입니다. 제품이 포함 된 모델이 하나 있습니다.평균적으로 속성을 기준으로 평균 계산
- 제품 _
- unit_sold 많은 회사가 있습니다
이 코드는 모든 레코드의 평균을 계산하는 데 사용되지만 조건 '회사'를 기준으로 평균적으로 평균을 계산하고 싶습니다.
def average_UnitSold
self.class.average(:unit_sold)
end
def averagechange_UnitSold
(self.unit_sold - average_UnitSold)/average_UnitSold * 100
end
나는이 함께했다, 그러나 그것은 작동하지 않습니다 :
def average_UnitSold
self.class.sum(:unit_sold), :conditions => "company = self.company"))/:unit_sold
end
어떤 아이디어?
또 다른 주목할 점은 이러한 모든 평균을 어딘가에 저장하고 일상적으로보다 효율적으로 업데이트하는 것이 가능한 실용적인 접근 방법입니까? 대답을 기반으로
는, 지금이 코드를 구현하고, 그것을 작동하는 것 같다 :
def self.average_unit_sold(company)
where(company: company).average(:unit_sold)
end
def average_unit_sold
self.class.average_unit_sold(self.company)
end
def averagechange_UnitSold
(self.unit_sold - average_unit_sold)/average_unit_sold * 100
end
당신이 사이에 연관성이 있습니까 당신의 모델? 그것은 놀라 울 정도로 간단한 일이 될 것입니다. –
안녕하세요,이 – bnussey
'회사'모델에 대한 하나의 모델 만 있습니다. 그거 이상 하네. 데이터 구조가 제안합니다. @infused는 그의 답변에서 내가 의미하는 것을 보여 주었다. –