diff --git a/lib/groupdate/magic.rb b/lib/groupdate/magic.rb index 840a602..e2f5018 100644 --- a/lib/groupdate/magic.rb +++ b/lib/groupdate/magic.rb @@ -87,8 +87,11 @@ module Groupdate raise "Connection adapter not supported: #{adapter_name}" end - group = relation.group(Groupdate::OrderHack.new(relation.send(:sanitize_sql_array, query), field, time_zone)) - if options[:series] == false + group_query = relation.send(:sanitize_sql_array, query) + group = relation.group(Groupdate::OrderHack.new(group_query, field, time_zone)) + if options[:select] + group.select(options[:select] + ", #{group_query} AS #{field}") + elsif options[:series] == false group else relation = diff --git a/test/test_helper.rb b/test/test_helper.rb index 6120a1d..7d1c686 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -772,6 +772,17 @@ module TestGroupdate assert_equal expected, User.group_by_day(:created_at, time_zone: "Brasilia").count end + # select + + def test_select + create_user("2014-10-19 00:00:00") + create_user("2014-10-19 00:00:00", 2) + result = User.group_by_day(:created_at, select: "COUNT(*) AS count, SUM(score) AS sum").to_a.first + assert_equal 2, result.count + assert_equal 3, result.sum + assert_equal utc.parse("2014-10-19 00:00:00"), result.day + end + # helpers def assert_format(method, expected, format, options = {}) -- libgit2 0.21.0