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


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

 29
Author: kiamlaluno, 2012-01-25

3 answers

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

  1. Отредактируйте свое представление и включите агрегирование представлений:
    enable Views aggregations

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

  3. Добавьте поля "Содержимое: Тип" и "Содержимое: Nid": enter image description here
    Выберите функцию ПОДСЧЕТА для содержимого: Nid: enter image description here

Чтобы увидеть, что произойдет, просто установите флажок "Показывать 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

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

 48
Author: kalabro, 2012-05-18 13:00:56

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

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

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

 11
Author: therobyouknow, 2013-07-25 12:07:52

На всякий случай, если кто-нибудь наткнется на это.

Я использовал Формат представления даты SQL для форматирования даты до детализации.

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

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

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

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

 -2
Author: Jeremy, 2016-09-14 12:08:40