Ergebnisse in Ansichten mit Aggregation zählen [geschlossen]

30

Ist es möglich, Ergebnisse (z. B. die Knoten des Inhaltstyps x) in einer Ansicht mithilfe der Aggregation (nicht programmgesteuert) zu zählen?

hpn
quelle
3
Verwenden Sie einfach die Aggregation und wählen Sie dann "count" für Ihr "node id" -Feld.
Uwe
1
Unter drupal.stackexchange.com/questions/15871/count-of-nodes-by-type finden Sie eine identische Q & A , einschließlich eines gebrauchsfertigen Ansichtsexports.
Marcvangend

Antworten:

42

Ja, in Views 3 ist dies sofort möglich.
Die Idee ist dieselbe wie bei SQL-Aggregationen. Sehen wir uns ein Beispiel an:

  1. Bearbeiten Sie Ihre Ansicht und aktivieren Sie Ansichten-Aggregationen:
    Aktivieren Sie Ansichten-Aggregationen

  2. Entfernen Sie die Standardsortierkriterien.

  3. Felder "Content: Type" und "Content: Nid" Bildbeschreibung hier eingeben
    hinzufügen : COUNT-Funktion für Content: Nid auswählen: Bildbeschreibung hier eingeben

Um zu sehen, was passiert, aktivieren Sie einfach das Kontrollkästchen "SQL-Abfrage anzeigen" auf der Seite mit den globalen Einstellungen für Ansichten.

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

Wir gruppieren also Knoten nach Knotentyp und berechnen die Anzahl für diese Gruppen.

kalabro
quelle
1
Ich steckte ein paar Stunden fest und als ich Ihren Beitrag las, stellte ich fest, dass ich dort standardmäßig sortiert hatte. Thanks @kalabro
saadlulu
2
Wie wird die Anzahl verfügbar gemacht - ist sie eine Token-Variable und wie kann sie angezeigt werden?
Therobyouknow
Ihre Antwort ist natürlich richtig. Ich bin jedoch beim Verwenden von Beziehungen mit Entitätsreferenzen und Aggregation festgefahren. Es funktioniert gut, wenn Sie einen Block erstellen, aber nicht, wenn Sie eine Seite erstellen. Komisches Zeug.
Urb Gim Tam
10

Gute Antworten hier, obwohl Ihre ursprüngliche Frage nicht angibt, was Sie mit dem Zählwert tun werden. Vermutlich möchten Sie es anzeigen?

Wenn ja, ist hier eine andere Lösung:

Angenommen, Ihre Ansicht ist bereits so eingerichtet, dass nach Elementen des Inhaltstyps gefiltert wird, können Sie der Ansicht auch eine Kopfzeile hinzufügen und die Option "Global: Ergebniszusammenfassung" auswählen und die im Textbereich angegebenen Token-Variablen verwenden.

wie Sie wissen
quelle
Zur Verdeutlichung erweitert dies die großartige Lösung von kalabro, um eine Zählung anzuzeigen.
Wie Sie wissen,
-2

Nur für den Fall, dass jemand darauf stößt.

Ich habe das Views Date Format SQL verwendet, um das Datum auf die Granularität zu formatieren.

Das SQL-Modul Views Date Format ermöglicht das Formatieren von Datumsfeldern mit SQL. Dies ermöglicht die Gruppenaggregation für Datumsfelder unter Verwendung der ausgewählten Granularität.

Die Hauptfunktion besteht darin, die Datumsformatierung aus render () zu entfernen und in query () abzulegen. Dh formatiere Datumswerte mit SQLs DATE_FORMAT anstatt mit PHPs format_date.

Dies wird erreicht, indem den Datumsfeldern des Knotens "Erstellt" und "Geändert" ein neuer Standard-Handler zugewiesen wird. Dieser Handler erweitert und überschreibt den Build von views in views_handler_field_date.

Sofort einsatzbereit - so einfach geht's!

Jeremy
quelle