Подсчет результатов в представлениях с использованием агрегации [закрыто]


30

Можно ли подсчитывать результаты (например, подсчитывать узлы типа контента x) в представлении, используя агрегирование (не программно)?


3
Конечно, просто используйте агрегацию и затем выберите «count» в поле «id узла».
Уве

1
На drupal.stackexchange.com/questions/15871/count-of-nodes-by-type есть идентичные вопросы и ответы , включая готовый экспорт представлений.
Marcvangend

Ответы:


42

Да, это возможно в Views 3 из коробки.
Идея та же, что и в агрегации SQL. Давайте посмотрим на пример:

  1. Отредактируйте свой вид и включите агрегацию видов
    включить агрегаты просмотров

  2. Удалить критерии сортировки по умолчанию.

  3. Добавьте поля «Содержимое: Тип» и «Содержимое: Nid»: введите описание изображения здесь
    выберите функцию COUNT для содержимого: Nid: введите описание изображения здесь

Чтобы увидеть, что происходит, просто установите флажок «Показать SQL-запрос» на странице настроек глобального представления.

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

Итак, мы группируем узлы по типу узла и вычисляем количество для этих групп.


1
Я застрял на пару часов, потом, прочитав твой пост, понял, что у меня там сортировка по умолчанию. Спасибо @kalabro
saadlulu

2
Итак, как сделать счетчик доступным - это переменная токена и как его можно отобразить?
therobyouknow

Ваш ответ, конечно, правильный. Тем не менее, я застрял при использовании отношений с ссылками на сущности и агрегации. Он отлично работает, если вы строите блок, но не если вы создаете страницу. Странные вещи.
Урб Гим Там

10

Хорошие ответы здесь, хотя ваш первоначальный вопрос не указывает, что вы собираетесь делать со значением count. Предположительно, вы хотите отобразить это?

Если так, вот другое решение:

Предполагая, что ваше представление уже настроено на фильтрацию по элементам типа содержимого, вы также можете добавить заголовок в представление и выбрать опцию «Global: Result summary» и использовать переменные токена, предоставленные в текстовой области.


Чтобы уточнить, это расширяет отличное решение, предоставляемое Kalabro, для отображения счетчика.
therobyouknow

-2

На всякий случай, если кто-то сталкивается с этим.

Я использовал SQL формата даты представления, чтобы отформатировать дату к детализации.

Модуль SQL формата представления даты позволяет форматировать поля даты с использованием SQL. Это позволяет объединять группы для полей даты, используя выбранную гранулярность.

Основная функция состоит в том, чтобы удалить форматирование даты из render () и поместить его в query (). Т.е. форматировать значения даты, используя SQL DATE_FORMAT вместо PHP format_date.

Это достигается путем назначения нового обработчика по умолчанию для полей даты «создан» и «изменен» узла. Этот обработчик расширяет и переопределяет сборку представлений в views_handler_field_date.

Работал прямо из коробки - просто как!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.