ruby-on-rails ruby count group

ruby on rails - ¿Cómo contar grupo por filas en rieles?



ruby-on-rails count (4)

Cuando uso User.count(:all, :group => "name") , obtengo varias filas, pero no es lo que quiero. Lo que quiero es el recuento de las filas. ¿Cómo puedo obtenerlo?


  1. User.count le dará la cantidad total de usuarios y se traduce en el siguiente SQL: SELECT count(*) AS count_all FROM "users"
  2. User.count(:all, :group => ''name'') le dará la lista de nombres únicos, junto con sus recuentos, y se traduce a este SQL: SELECT count(*) AS count_all, name AS name FROM "users" GROUP BY name

Sospecho que quieres la opción 1 anterior, pero no tengo claro qué es exactamente lo que quieres / necesitas.


Intenta usar User.find (: all,: group => "name"). Count

¡Buena suerte!


¿Probablemente quieres contar el nombre distintivo del usuario?

User.count(:name, :distinct => true)

devolvería 3 si tiene un usuario con el nombre John, John, Jane, Joey (por ejemplo) en la base de datos.

________ | name | |--------| | John | | John | | Jane | | Joey | |________|


Actualmente ( 18.03.2014 - Rails 4.0.3 ) esta es la sintaxis correcta:

Model.group("field_name").count

Devuelve hash con recuentos como valores, por ejemplo

SurveyReport.find(30).reports.group("status").count #=> { "pdf_generated" => 56 }