Подсчет количества нод с фильтрацией по термину таксономии v.2

Аватар пользователя Arion Arion 24 мая 2018 в 7:31

Здравствуйте. Недавно делал подобную тему, реализовываю данную проблему через код.
Но понял что есть альтернатива в виде views v.3, в котором в принципе строится правильная таблица, но.. используются 2 разных словаря, и кроме группировки с дублированием ничего не нашел.
Таблица нужна в таком виде:

Словарь1/ | Термин1 | Термин2 | Термин3
Словарь2
--------------------------------------------------------------------------------------------------------------------------------
Термин1
--------------------------------------------------------------------------------------------------------------------------------
Термин2
--------------------------------------------------------------------------------------------------------------------------------
Термин3
--------------------------------------------------------------------------------------------------------------------------------

На пересечениях соответственно число матеирала, в котором присутствуют оба термина
Можно ли решить данную проблему без написания своего модуля?

Комментарии

Аватар пользователя postgres postgres 24 мая 2018 в 9:07
1

В Mysql нет запросов TRANSFORM, а вам нужен именно он.
Можно решить задачу на фиксированных значениях в столбцах.
Тогда вам надо создать дисплей с фильтром по двум tid, который выводит сумму строк.
Затем вы создаете сводный дисплей и добавляете поля по количеству столбцов, указывая в поле глобальную сущность - дисплей и высталяете ему подстановку в фильтр один tid - фиксированный (столбец), другой tid - текущий (строка).

Аватар пользователя postgres postgres 25 мая 2018 в 10:44
1

http://prntscr.com/jmdelx
Добавляете контекстные фильтры - не те что под списком полей

И задаете источник фильтра по клику... и там
http://prntscr.com/jmdfg2

повторяете, что именно означают входящие параметры... не перепутайте, там много групп, если у вас поля - значит ищете содержание...
в моем примере я фильтрую по двум полям материала и это таксономии. Поэтому в значениях входных параметров будут tid при передаче

проверяем работу контекстных фильтров здесь же, указывая tid'ы
http://prntscr.com/jmdjq4

Аватар пользователя Arion Arion 25 мая 2018 в 14:42

Во views все равно необходимая таблица не получится, а так просмотрев запрос во VIew получается полезная информация, спасибо

Аватар пользователя postgres postgres 28 мая 2018 в 10:13

Странно что не получается. У меня не получается домыслить, что не получается... может вам надо вывести сводную таблицу не списком а столбцами, то есть через table? Тогда каждое поле запроса - это столбец....

Аватар пользователя Arion Arion 28 мая 2018 в 12:30

дело в том, что мне нужно отображение таблицы целиком, с подсчетом количества нод, например:
Тема вопроса/ Темавопроса1 | Темавопроса2
Город

Москва --------------------------------3--------------------------2

Воронеж ------------------------------0--------------------------4
Т.е. в виде Count должны отображаться количество нод, содержащих термин Москва+Темавопроса1, Москва+Темавопроса2 и т.д
Используя контекстные фильтры, я получаю конкретно город и все количества нод по вопросам (все цифры верны)
Используя группирующее поле, я получаю не единую таблицу, а несколько таблиц, где для каждого словаря (вопрос) выводятся все счетчики словаря(город)
Я же интересуюсь возможностью сделать одну таблицу, которая будет динамически хранить все эти счетчики

Аватар пользователя fairrandir fairrandir 28 мая 2018 в 12:35

У views в крайнем правом столбце есть настройки аггрегации. Рекомендую поэксперементировать с ними.

Аватар пользователя miu miu 29 мая 2018 в 10:33

ну вам немного совсем осталось.

Работаем с подчиненным запросом, который должен выводить количество нод на пересечениях строк.
Вы уже создали этот запрос, он возможно сейчас выводит список по контекстному фильтру из двух характеристик: город - тема вопроса. А надо чтобы выводил только одно число. Группируем тут.

В сводном запросе не надо группировать, там надо строить views по словарю городов... но если вы уже сделали по нодам - то ладно - группируйте тоже, просто долго работать будет

1. Включаем агрегацию в правом столбце.
2. Добавляем в вывод только одно поля... например Темавопроса1 - и выстаивляем агрегацию - СЧЕТЧИК

ПО логике БД я бы выводил поле nid и считал его, но это без разницы совершенно...

http://prntscr.com/jnxjc0

ну далее вы уже поняли как собрать данные в одной таблице