# Plain sql to find

**URL:** <https://www.ruby-forum.com/t/plain-sql-to-find/80490>\
**Category:** Rails\
**Created:** [December 27, 2006, 8:05pm UTC](https://www.ruby-forum.com/t/plain-sql-to-find/80490 "2006-12-27T20:05:24Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rajkumar\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/fbc32d/32.png) [@Rajkumar\_S](https://www.ruby-forum.com/u/Rajkumar_S)\
**Post date:** [December 27, 2006, 8:05pm UTC](https://www.ruby-forum.com/t/plain-sql-to-find/80490/1 "2006-12-27T20:05:24Z")

</div>

Hi,

I have a query like

SELECT call\_queue\_id,agent\_id,count(\*) AS count  
FROM completed\_calls  
GROUP BY call\_queue\_id,agent\_id  
ORDER BY call\_queue\_id,agent\_id

on a table with following structure:

±----------------±------------±-----±----±--------±---------------+  
| Field | Type | Null | Key | Default | Extra |  
±----------------±------------±-----±----±--------±---------------+  
| id | int(11) | | PRI | NULL | auto\_increment |  
| call\_queue\_id | int(11) | YES | | NULL | |  
| agent\_id | int(11) | | | 0 | |  
| start\_time | datetime | YES | | NULL | |  
| end\_time | datetime | YES | | NULL | |  
| status | char(1) | YES | | c | |  
±----------------±------------±-----±----±--------±---------------+

How can I express this query using find?

Right now I am using find\_by\_sql, but I would like to use find because  
I want to use with\_scope (I am assuming that with\_scope will not work  
with find\_by\_sql)

regards,

raj

---

<div class="post-metadata">

**Author:** ![Rajkumar\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/fbc32d/32.png) [@Rajkumar\_S](https://www.ruby-forum.com/u/Rajkumar_S)\
**Post date:** [December 27, 2006, 10:05pm UTC](https://www.ruby-forum.com/t/plain-sql-to-find/80490/2 "2006-12-27T22:05:52Z")

</div>

Try:

YourModelClass.find(:all, :select =\> “call\_queue\_id,agent\_id,count(\*)  
AS count”, :group =\> “call\_queue\_id,agent\_id”, :order =\>  
“call\_queue\_id,agent\_id”)

-Paul

---

<div class="post-metadata">

**Author:** ![Rajkumar\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/fbc32d/32.png) [@Rajkumar\_S](https://www.ruby-forum.com/u/Rajkumar_S)\
**Post date:** [December 28, 2006, 7:07am UTC](https://www.ruby-forum.com/t/plain-sql-to-find/80490/3 "2006-12-28T07:07:11Z")

</div>

On 12/28/06, Paul C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> YourModelClass.find(:all, :select =\> “call\_queue\_id,agent\_id,count(\*)  
> AS count”, :group =\> “call\_queue\_id,agent\_id”, :order =\>  
> “call\_queue\_id,agent\_id”)

Thanks!! That does work, but when I tried to use :include =\> this as  
well as :group stopped working. Is there a way to get this working  
with another table included in?

raj

---

<div class="post-metadata">

**Author:** ![Rajkumar\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/fbc32d/32.png) [@Rajkumar\_S](https://www.ruby-forum.com/u/Rajkumar_S)\
**Post date:** [December 28, 2006, 5:08pm UTC](https://www.ruby-forum.com/t/plain-sql-to-find/80490/4 "2006-12-28T17:08:29Z")

</div>

Unfortunately that won’t work. Rails doesn’t support :group when an  
:include is specified.

-Paul
