Policz wyniki w widokach przy użyciu agregacji [zamknięte]

30

Czy można zliczyć wyniki (np. Policzyć węzły typu zawartości x) w widoku, używając agregacji (nie programowo)?

hpn
źródło
3
Jasne, po prostu użyj agregacji, a następnie wybierz pole „count” w polu „id węzła”.
uwe
1
Identyczne pytania i odpowiedzi można znaleźć na stronie drupal.stackexchange.com/questions/15871/count-of-nodes-by-type , w tym gotowy widok eksportu.
marcvangend

Odpowiedzi:

42

Tak, jest to możliwe w Widoku 3 po wyjęciu z pudełka.
Pomysł jest taki sam jak w agregacjach SQL. Zobaczmy przykład:

  1. Edytuj widok i włącz agregację widoków:
    włącz agregacje widoków

  2. Usuń domyślne kryteria sortowania.

  3. Dodaj pola „Content: Type” i „Content: Nid”: wprowadź opis zdjęcia tutaj
    Wybierz funkcję COUNT dla Content: Nid: wprowadź opis zdjęcia tutaj

Aby zobaczyć, co się stanie, po prostu zaznacz pole wyboru „Pokaż zapytanie SQL” na stronie globalnych ustawień Widoku.

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

Grupujemy więc węzły według typu węzła i obliczamy liczbę tych grup.

kalabro
źródło
1
Utknąłem na kilka godzin, a potem po przeczytaniu twojego postu zdałem sobie sprawę, że domyślnie tam sortowałem. Dzięki @kalabro
saadlulu
2
Więc w jaki sposób udostępniana jest liczba - czy jest to zmienna tokena i jak można ją wyświetlić?
therobyouknow
Twoja odpowiedź jest oczywiście poprawna. Jednak utknąłem podczas korzystania z relacji z referencjami encji i agregacją. Działa dobrze, jeśli zbudujesz blok, ale nie, jeśli utworzysz stronę. Dziwne rzeczy.
Urb Gim Tam
10

Świetne odpowiedzi tutaj, chociaż twoje pierwotne pytanie nie określa, co zamierzasz zrobić z wartością liczenia. Prawdopodobnie chcesz to wyświetlić?

Jeśli tak, oto inne rozwiązanie:

Zakładając, że Twój widok jest już skonfigurowany do filtrowania według elementów typu zawartości, możesz także dodać nagłówek w Widoku i wybrać opcję „Globalne: Podsumowanie wyników” i użyć zmiennych tokenu podanych w polu tekstowym.

therobyouknow
źródło
Aby to wyjaśnić, rozszerza to świetne rozwiązanie oferowane przez kalabro, aby wyświetlić liczbę.
therobyouknow
-2

Na wypadek, gdyby ktoś się z tym spotkał.

Użyłem formatu Data wyświetlenia SQL, aby sformatować datę z dokładnością do szczegółowości.

Moduł SQL Data Widoku umożliwia formatowanie pól daty za pomocą SQL. Umożliwia to agregację grup dla pól daty przy użyciu wybranej ziarnistości.

Podstawową funkcją jest usunięcie formatowania daty z render () i wstawienie go do zapytania (). To znaczy wartości daty w formacie używają SQL DATE_FORMAT zamiast PHP format_date.

Osiąga się to poprzez przypisanie nowego domyślnego modułu obsługi do pól daty „utworzonych” i „zmienionych” w węźle. Ten moduł obsługi rozszerza i zastępuje kompilację widoków w parametrze views_handler_field_date.

Działa od razu po wyjęciu z pudełka - proste jak!

Jeremy
źródło