4 votes

Requête ActiveRecord pour un comptage des nouveaux utilisateurs par jour

Je veux générer un tableau montrant combien d'utilisateurs ont été créés chaque jour.

Quelle est la requête ActiveRecord la plus efficace ou la plus élégante pour faire cela ?

Mon schéma (simplifié) ressemble à ceci :

create_table "users" do |t|
  t.datetime "created_at"
  t.string   "name"
end

Je veux un tableau qui ressemble à ceci, où les nombres entiers sont un compte de nouveaux utilisateurs chaque jour :

day              new users
2012-04-01       55
2012-04-02       63
2012-04-03       77
2012-04-04       88

Je veux générer le tableau à partir d'un tableau qui ressemble à ceci :

data_table.add_rows( [
  [ Date.parse("2012-04-01"), 55],
  [ Date.parse("2012-04-02"), 63],
  [ Date.parse("2012-04-03"), 77],
  [ Date.parse("2012-04-04"), 88]
] )

14voto

Paul Simpson Points 1590

Vous pouvez le faire en utilisant l'ActiveRecord group méthode comme ceci :

@users_created_by_day = User.group("DATE(created_at)").count

Vous obtiendrez un hachage avec les dates comme clé et le nombre d'utilisateurs créés ce jour-là comme valeur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X