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?
-
User.count
le dará la cantidad total de usuarios y se traduce en el siguiente SQL:SELECT count(*) AS count_all FROM "users"
-
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
}