O Active Record do Rails pode lidar com consultas agregadas SQL?

Apenas comecei a aprender o registro ativo e estou querendo saber como recuperar dados de várias tabelas onde uma consulta agregada SQL está envolvida.

No exemplo a seguir (de um aplicativo médico), estou procurando os eventos mais recentes de vários tipos para cada paciente (por exemplo, última visita, último teste de laboratório, etc.). Como você pode ver na consulta sql abaixo, estou procurando o valor max (data) de uma consulta agrupada. Eu recorri a find_by_sql para fazer isso - no entanto eu gostaria de ver como fazer isso sem usar o find_by_sql.

IOW - como você obteria os dados necessários aqui usando uma abordagem pura de ActiveRecord? Abaixo estão os defs de Tabela e Classe com os quais estou testando:

Encontre pelo Sql para recuperar as entradas mais recentes para cada tipo - observe o 'max (event_date)' aqui

strsql = "select  p.lname, e.patient_id, e.event_type, max(e.event_date) as event_date 
     from events e   
         inner join patients p on e.patient_id = p.id
         group by p.lname, e.patient_id, e.event_type"

Aqui está o resultado da consulta sql de amostra:

lname, patient_id, event_type, latest
'Hunt', 3, 'Labtest', '2003-05-01 00:00:00'
'Hunt', 3, 'Visit', '2003-03-01 00:00:00'
'Seifer', 2, 'Labtest', '2002-05-01 00:00:00'
'Seifer', 2, 'Visit', '2002-03-01 00:00:00'

Table Relationships are:
Tables ---> Patients --> Events
                               --> visits
                               --> labtests
                               --> ... other
patients
      t.string :lname
      t.date :dob

events
      t.column :patient_id, :integer
      t.column :event_date, :datetime
      t.column :event_type, :string

visits 
      t.column :event_id, :integer
      t.column :visittype, :string

labtests
      t.column :event_id, :integer
      t.column :testtype, :string
      t.column :testvalue, :string

Classes

class Patient < ActiveRecord::Base
  has_many :events
  has_many :visits, :through =>:events
  has_many :labtests, :through => :events
end

class Event < ActiveRecord::Base
  has_many :visits
  has_many :labtests
  belongs_to :patient
end

class Visit < ActiveRecord::Base
  belongs_to :event
end

class Labtest < ActiveRecord::Base
    belongs_to :event
end

questionAnswers(3)

yourAnswerToTheQuestion