Comment calculer le nombre de groupe par des rangées de rails?
Lorsque j'utilise User.count(:all, :group => "name")
, je reçois plusieurs lignes, mais ce n'est pas ce que je veux. Ce que je veux, c'est le nombre de lignes. Comment puis-je l'obtenir?
- double possible de le Comptage et le regroupement en même temps
Vous devez vous connecter pour publier un commentaire.
Actuellement (
18.03.2014
- Rails4.0.3
) c'est la syntaxe correcte:Elle renvoie la valeur de hachage avec compte comme valeurs
par exemple,
User.count
vous donnera le nombre total d'utilisateurs et se traduit par l'instruction SQL suivante:SELECT count(*) AS count_all FROM "users"
User.count(:all, :group => 'name')
va vous donner la liste des noms uniques, avec leur compte, et se traduit par ce SQL:SELECT count(*) AS count_all, name AS name FROM "users" GROUP BY name
Je soupçonne que vous voulez l'option 1 ci-dessus, mais je ne suis pas clair sur ce que vous voulez ou avez besoin.
Probablement vous souhaitez compter le nom distinct de l'utilisateur?
serait de retour 3 si vous avez de l'utilisateur avec le nom de John, John, Jane, Joey (par exemple) dans la base de données.
Essayez d'utiliser de l'Utilisateur.find(:all, :groupe => "name").le comte
Bonne chance!
J'ai trouvé une drôle de façon qui semble fonctionner. Pour compter les lignes renvoyées par le groupement compte.
De L'Utilisateur Exemple De Table
Compte dans les Groupes
Nombre de lignes à partir des comptes dans les Groupes
Quelque Chose Hacky
Voici quelque chose d'intéressant, j'ai couru dans, mais il est tout à fait hacky comme il va ajouter le nombre à chaque ligne, et ne joue pas trop bien à l'actif d'enregistrement des terres. Je ne me souviens pas si j'ai été en mesure d'obtenir ce dans un Arel /ActiveRecord requête.