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


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.