Help with find in activerecord

Hi

How can I translate this sql using find(*args) in activerecord?

select x., y., count(distinct y.name) as name_count
from x,y
where x.id1 = y.id2
group by y.name
order by name_count

X.find(:all,
:select => “x., y., count(distinct y.name) as name_count”,
:include => “y”,
:group => “y.name”,
:order => “name_count”)

doesn’t work. Could you please give me some advice?

Thanks

Don’t use :include with :select, they’re incompatible since :include
will do a ton of weird stuff to your select statement.

You probably should use a join as well:

X.find(:all,
:select => “x., y., count(distinct y.name) as name_count”,
:joins => “INNER JOIN #{Y.table_name} ON x.id1 = x.id2”,
:group => “y.name”,
:order => “name_count”)

Thanks eden. It works!