2013-04-10 3 views
0

나는 number_of_share와 price_per_share라는 2 개의 필드를 가진 거래 모델을 가지고 있습니다.유사한 값을 가진 필드 추가

파이 차트에 표시하고 싶습니다. 사용자와 관련된 모든 거래 오브젝트를 찾아서 동일한 price_per_share를 가진 모든 거래 오브젝트를 추가하고 number_of_shared도 추가해야합니다.

예 : -

trading id: 1, price_per_share: 10, number_of_shares: 20 
trading id: 2, price_per_share: 10, number_of_shares: 12 
trading id: 3, price_per_share: 12, number_of_shares: 10 

지금은 (이 경우 10)와 유사한 값을 가지고 모든 price_per_share를 추가 할. 어떻게해야합니까?

Trading.where(:price_per_share => 10).sum(:number_of_shares) 

당신에게 당신이 찾고있는 결과를 제공해야합니다

+0

무엇 예상 (코드) 출력, 그리고 당신이 그것을 얻기 위해 무엇을하려고 했습니까? –

+0

예상 출력은 32 주 @ 10 및 10 주 @ 12 –

답변

3

이 작동합니다 :

Trading.group(:price_per_share).sum(:number_of_shares) 
# => {10=>32, 12=>10} 

는 SQL과 같은 뭔가를 할 것이다 :

SELECT SUM(`tradings`.`number_of_shares`) AS sum_number_of_shares, price_per_share AS price_per_share FROM `tradings` GROUP BY `tradings`.`price_per_share` 
0

희망은 내가 좋아,하지만 이해합니다.

+0

비슷합니다. price_per_share를 모두 추가하고 싶습니다. price_per_share의 값을 알 수 없습니다. –

+0

"비슷한"을 정의 할 수 있습니까? 당신이 말했듯이, 당신은 먼저 "distinct"또는 "group_by"와 같이 가능한 값 목록을 원합니다. –

+0

이것은 32 공유 @ 10 및 @ 10 공유를 원하는 출력입니다. –

관련 문제