count of records meeting condition

2 views
Skip to first unread message

Terry Michaels

unread,
Aug 27, 2010, 1:13:19 AM8/27/10
to rubyonra...@googlegroups.com
Forgive this question, but I'm new to rails, and my SQL is rather rusty.
I have a line like so to get all records for a particular time period:

@recordings_for_period = Recording.find(:all, :order => "date_of_event
DESC", :conditions => ["date_of_event >= ? AND date_of_event < ?",
start_date, end_date])

Let say, instead, I just want to know the number of recordings that are
available for that time period. Should I just run the above code and
then get the length of the array? Or is there some construction I should
be using with COUNT that would be better? (I.e., is less work for the
database to process.)

Oh, and (unfortunately) I am still using rails 2.3.5.
--
Posted via http://www.ruby-forum.com/.

Frederick Cheung

unread,
Aug 27, 2010, 3:58:01 AM8/27/10
to Ruby on Rails: Talk


On 27 Aug, 06:13, Terry Michaels <li...@ruby-forum.com> wrote:
> Forgive this question, but I'm new to rails, and my SQL is rather rusty.
> I have a line like so to get all records for a particular time period:
>
> @recordings_for_period = Recording.find(:all, :order => "date_of_event
> DESC", :conditions => ["date_of_event >= ? AND date_of_event < ?",
> start_date, end_date])
>
> Let say, instead, I just want to know the number of recordings that are
> available for that time period. Should I just run the above code and
> then get the length of the array? Or is there some construction I should
> be using with COUNT that would be better? (I.e., is less work for the
> database to process.)

There's a count method that does what you want

Fred

Colin Law

unread,
Aug 27, 2010, 3:59:55 AM8/27/10
to rubyonra...@googlegroups.com
On 27 August 2010 06:13, Terry Michaels <li...@ruby-forum.com> wrote:
> Forgive this question, but I'm new to rails, and my SQL is rather rusty.
> I have a line like so to get all records for a particular time period:
>
> @recordings_for_period = Recording.find(:all, :order => "date_of_event
> DESC", :conditions => ["date_of_event >= ? AND date_of_event < ?",
> start_date, end_date])
>
> Let say, instead, I just want to know the number of recordings that are
> available for that time period. Should I just run the above code and
> then get the length of the array? Or is there some construction I should
> be using with COUNT that would be better? (I.e., is less work for the
> database to process.)

@count_of_recordings_for_period = Recording.count(:all, :order => "date_of_event


DESC", :conditions => ["date_of_event >= ? AND date_of_event < ?",
start_date, end_date])

should use COUNT in the sql to give the answer you want.

Colin

Reply all
Reply to author
Forward
0 new messages