2010-06-01 5 views
3

J'ai besoin de compter combien de personnes appartiennent à des groupes prédéfinis (cela est facile à faire en SQL en utilisant l'instruction SELECT COUNT). La requête Mes vues s'exécute correctement et affiche les données réelles dans ma table, mais j'ai simplement besoin de connaître le nombre de résultats trouvés.Nombre de résultats dans une vue

Cependant, il ne semble pas y avoir une option COUNT dans les vues. Je devine que je vais devoir utiliser une sorte de crochet de vues, puis coller le résultat dans la table.

Voici un exemple rapide de ce que je suis en train de réaliser:

My Table 
---------------------- 
Group A | 20 people 
Group B | 63 people 

et ainsi de suite.

(je l'ai essayé d'utiliser le module Views_Calc, mais je reçois des erreurs car il est pas encore tout à fait stable.)

Quelqu'un sait d'un moyen facile de compter les résultats dans les vues?

Répondre

1

est ici un bon ne fil à ce sujet: http://drupal.org/node/131031

Bien que si vous avez besoin juste le nombre et non les autres choses Vues offres (champ de mise en forme & commande, etc.), pourquoi ne pas coder tout le COUNT approprié SELECT déclaration et appelez-le un jour?

(Si vous n'avez en fait besoin de ces autres pièces Vues offres, il y a beaucoup d'exemples sur ce thread ci-dessus.)

+0

Beaucoup de messages concernent le placement du code dans le pied de page. J'ai besoin que le compte soit affiché dans la rangée du tableau. ou ai-je oublié quelque chose? – Jukebox

0

J'utilise actuellement la Views Group By module pour ce type de fonctionnalité.

Je suis en fait en train d'ajouter d'autres fonctions d'agrégation (MIN, MAX, etc.) en elle, mais puisque vous avez seulement besoin de la fonction COUNT, je pense que c'est une option assez bonne.

Tout ce que vous avez à faire (après l'installation et l'activation du module), dans la vue que vous êtes intéressé:

  1. Ajouter des champs pour les critères que vous souhaitez GROUP BY.
  2. Ajoutez le champ Agrégation SQL comme dernier champ (ou remplacez-le par le dernier).
  3. Sélectionnez les champs (vous pouvez sélectionner plusieurs champs) Fields to Group On.
  4. SQL Aggregation Function doit être défini sur Count.
  5. Zones à Aggregate with the SQL function définies sur un champ que vous ne regroupez pas. (Ceci sera ajouté dans la fonction COUNT comme COUNT(<this field>) dans SQL)
  6. Le reste est à vous et cliquez sur Update.

La sortie COUNT doit figurer dans le champ que vous avez sélectionné pour l'agrégation.

+0

J'ai essayé ce module ... malheureusement, j'ai seulement pu afficher "uid: 1" pour chaque personne du groupe (au lieu d'un nombre réel ou total). Je groupais sur "groupe", agrégeant avec "uid" et triant avec "groupe". des idées? – Jukebox

+0

C'est bizarre.Si vous obtenez chaque personne dans le groupe, alors je ne pense pas que vous vous regroupez avec succès. Vous pourriez vouloir vérifier la sortie SQL. Vérifiez également que vous ne triez pas par critère (dans le bloc Critères de tri) qui n'est pas dans le groupe. – sirhc

Questions connexes