method
group
v7.2.3 -
Show latest stable
- Class:
ActiveRecord::QueryMethods
group(*args)public
Allows to specify a group attribute:
User.group(:name) # SELECT "users".* FROM "users" GROUP BY name
Returns an array with distinct records based on the group attribute:
User.select([:id, :name]) # => [#<User id: 1, name: "Oscar">, #<User id: 2, name: "Oscar">, #<User id: 3, name: "Foo">] User.group(:name) # => [#<User id: 3, name: "Foo", ...>, #<User id: 2, name: "Oscar", ...>] User.group('name AS grouped_name, age') # => [#<User id: 3, name: "Foo", age: 21, ...>, #<User id: 2, name: "Oscar", age: 21, ...>, #<User id: 5, name: "Foo", age: 23, ...>]
Passing in an array of attributes to group by is also supported.
User.select([:id, :first_name]).group(:id, :first_name).first(3) # => [#<User id: 1, first_name: "Bill">, #<User id: 2, first_name: "Earl">, #<User id: 3, first_name: "Beto">]