Nested queries in Arel
- by Schrockwell
I am attempting to nest SELECT queries in Arel and/or Active Record in Rails 3 to generate the following SQL statement.
SELECT sorted.* FROM (SELECT * FROM points ORDER BY points.timestamp DESC) AS sorted GROUP BY sorted.client_id
An alias for the subquery can be created by doing
points = Table(:points)
sorted = points.order('timestamp DESC').alias
but then I'm stuck as how to pass it into the parent query (short of calling #to_sql, which sounds pretty ugly).
How do you use a SELECT statement as a sub-query in Arel (or Active Record) to accomplish the above? Maybe there's an altogether different way to accomplish this query that doesn't use nested queries?