Я пытаюсь вложить SELECT-запросы в Arel и/или Active Record в Rails 3, чтобы сгенерировать следующий оператор SQL.
SELECT sorted.* FROM (SELECT * FROM points ORDER BY points.timestamp DESC) AS sorted GROUP BY sorted.client_id
Псевдоним для подзапроса можно создать, выполнив
points = Table(:points)
sorted = points.order('timestamp DESC').alias
но затем я застрял как передать его в родительский запрос (не дозвонив #to_sql
, что звучит довольно уродливо).
Как вы используете инструкцию SELECT в качестве подзапроса в Arel (или Active Record) для выполнения вышеперечисленного? Может быть, есть совсем другой способ выполнить этот запрос, который не использует вложенные запросы?