# Sum enumeration with LIMIT

**URL:** <https://www.ruby-forum.com/t/sum-enumeration-with-limit/155091>\
**Category:** Rails\
**Created:** [December 7, 2008, 8:38pm UTC](https://www.ruby-forum.com/t/sum-enumeration-with-limit/155091 "2008-12-07T20:38:11Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![yajiri](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/53a042/32.png) [@yajiri](https://www.ruby-forum.com/u/yajiri)\
**Post date:** [December 7, 2008, 8:38pm UTC](https://www.ruby-forum.com/t/sum-enumeration-with-limit/155091/1 "2008-12-07T20:38:11Z")

</div>

Hi everyone.

I’m trying to SUM the places of the first 5 finishers in a Cross  
Country running event. In a Cross Country race the team score is  
based upon the sum of the top 5 runners on your team. The lowest team  
score at the competition wins.

I have EVENTS(the race), PARTICIPANTS(the runner), and  
EVENT\_PARTICIPANTS(a runner in a race).

Within event\_participant I have this code, which doesn’t work as it  
adds places beyond the 5th runner.

def self.score\_5  
self.calculate(:sum, :finish\_place, :order  
=\> :finish\_place, :limit =\> 5)  
end

It appears that the LIMIT is ignored or is applied after the  
summation.

Any suggestions?

---

<div class="post-metadata">

**Author:** ![yajiri](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/53a042/32.png) [@yajiri](https://www.ruby-forum.com/u/yajiri)\
**Post date:** [December 7, 2008, 8:49pm UTC](https://www.ruby-forum.com/t/sum-enumeration-with-limit/155091/2 "2008-12-07T20:49:22Z")

</div>

On 7 Dec 2008, at 19:37, yajiri wrote:

> 

It’s applied after (so if you did select sum(foo) from bars limit 5  
then you’d only get 5 rows back).  
Something like  
SELECT sum(finish\_place) from  
(SELECT \* from some\_table order by finish\_place limit 5) as sub\_select

should do it.

Fred

---

<div class="post-metadata">

**Author:** ![yajiri](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/53a042/32.png) [@yajiri](https://www.ruby-forum.com/u/yajiri)\
**Post date:** [December 7, 2008, 9:02pm UTC](https://www.ruby-forum.com/t/sum-enumeration-with-limit/155091/3 "2008-12-07T21:02:16Z")

</div>

Are us suggesting find\_by\_sql?

On Dec 7, 1:48 pm, Frederick C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![yajiri](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/53a042/32.png) [@yajiri](https://www.ruby-forum.com/u/yajiri)\
**Post date:** [December 8, 2008, 12:07am UTC](https://www.ruby-forum.com/t/sum-enumeration-with-limit/155091/4 "2008-12-08T00:07:33Z")

</div>

I’d like to know if there is a way to use ActiveRecord to do this.

Thx
