Ruport includes a method to add a new column to a table. So date wise grouping from a timestamp source can be done like this:
@table.add_column('created_at_date') { |r| r.created_at.to_date }
created_at_date_grouping = Grouping(@table, :by => "created_at_date")
This method can, of course, also be used to generate more interesting reports like on Google Analytics:
@table.add_column('day_of_week') { |r| r.created_at.strftime('%a') }
@table.add_column('hour_of_day') { |r| r.created_at.strftime('%H') }
Don't know about performance though.