web-dev-qa-db-fra.com

Compter les résultats dans les vues à l'aide de l'agrégation

Est-il possible de compter les résultats (par exemple, compter les nœuds du type de contenu x) dans une vue, en utilisant l'agrégation (pas par programme)?

29
hpn

Oui, c'est possible dans les vues 3 de la boîte.
L'idée est la même que dans les agrégations SQL. Voyons un exemple:

  1. Modifiez votre vue et activez les agrégations de vues:
    enable Views aggregations

  2. Supprimer les critères de tri par défaut.

  3. Ajoutez les champs "Content: Type" et "Content: Nid": enter image description here
    Sélectionnez la fonction COUNT pour le contenu: Nid: enter image description here

Pour voir ce qui se passe, activez la case à cocher "Afficher la requête SQL" sur la page des paramètres des vues globales.

SELECT node.type AS node_type, COUNT(node.nid) AS nid
FROM 
{node} node
WHERE (( (node.status = '1') ))
GROUP BY node_type
LIMIT 10 OFFSET 0

Donc, nous regroupons les nœuds par node_type et calculons le nombre de ces groupes.

44
kalabro

Excellentes réponses ici, bien que votre question d'origine n'indique pas ce que vous allez faire avec la valeur de comptage. Vous voulez probablement l'afficher?

Si oui, voici une autre solution:

En supposant que votre vue est déjà configurée pour filtrer par éléments de type de contenu, vous pouvez également ajouter un en-tête dans la vue et choisir l'option "Global: Résumé des résultats" et utiliser les variables de jeton fournies dans la zone de texte.

10
therobyouknow