Подсчет результатов в представлениях с использованием агрегации [закрыто]
Можно ли подсчитать результаты (например, подсчитайте узлы типа контента x) в представлении, используя агрегацию (не программно)?
3 answers
Да, это возможно в представлениях 3 из коробки.
Идея та же, что и в агрегациях SQL. Давайте рассмотрим пример:
Отредактируйте свое представление и включите агрегирование представлений:
Удалите критерии сортировки по умолчанию.
- Добавьте поля "Содержимое: Тип" и "Содержимое: Nid":
Выберите функцию ПОДСЧЕТА для содержимого: 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
Итак, мы группируем узлы по типу node_type и вычисляем количество для этих групп.
Отличные ответы здесь, хотя в вашем первоначальном вопросе не указано, что вы собираетесь делать со значением count. Предположительно, вы хотите его отобразить?
Если это так, то вот другое решение:
Предполагая, что ваше представление уже настроено для фильтрации по элементам типа контента, вы также можете добавить заголовок в представление и выбрать опцию "Глобальный: Сводка результатов" и использовать переменные маркеров, указанные в текстовой области.
На всякий случай, если кто-нибудь наткнется на это.
Я использовал Формат представления даты SQL для форматирования даты до детализации.
Модуль SQL Формат даты представления позволяет форматировать поля даты с помощью SQL. Это позволяет агрегировать группы для полей даты с использованием выбранной детализации.
Основная функция заключается в удалении форматирования даты из render() и поместите его в запрос(). Т.е. отформатируйте значения даты, используя SQL-формат DATE_FORMAT вместо PHP-х формат_дата.
Это достигается путем назначения нового обработчика по умолчанию узлу "создан" и поля "измененной" даты. Этот обработчик расширяет и переопределяет сборку представлений в views_handler_field_date.
Сработал прямо из коробки - просто как!