Foo.group(:start_at).count(:id)
¿Cómo puedo agrupar esto por fecha? la columna "start_at" es una columna de fecha y horaraíles 3 agrupar por fecha una columna de fecha y hora
Foo.group(:start_at).count(:id)
¿Cómo puedo agrupar esto por fecha? la columna "start_at" es una columna de fecha y horaraíles 3 agrupar por fecha una columna de fecha y hora
Esto debería funcionar (carriles 3):
Foo.order(:start_at).group("DATE(start_at)").count
edición: si está usando PostgreSQL, la consulta debe ser
Foo.order("DATE(start_at)").group("DATE(start_at)").count
o obtendrá un error
("PGError: ERROR: column "foos.start_at" must appear in the GROUP BY clause or be used in an aggregate function")
Basado en
Graphing new users by date in a Rails app using Seer
y
http://www.pastbedti.me/2009/11/grouping-a-timestamp-field-by-date-in-ruby-on-rails-postgresql/
he creado una joya para esto. https://github.com/ankane/groupdate
Foo.group_by_day(:created_at).count
Incluso puede especificar un huso horario.
Foo.group_by_day(:created_at, time_zone: "Pacific Time (US & Canada)").count
Esto no funciona sin acceso a zonas horarias mysql en el servidor. Un desafío con AWS – Abram
Dependencia bastante grande si está utilizando mysql, fue un factor decisivo para mí. – jahrichie
¿Estás bromeando? gran dependencia? su 54kb descomprimido –