Views добавить group by для одного поля

Опубликовано 2016.01.11

В админке вьюсов группировка(называется агрегацией) отвратительная. Группирует все поля, а толку ноль. Уникализация выборки тоже не работает. Классическая ситуация. Вывод нескольких материалов(например блог) и одного приаттаченного материала к каждому блогу(через entity reference). И если к блогу привязано например 3 материала - то благодаря join в запросе это блог будет выведен трижды. Чтобы это побороть - нужно поальтерить запрос: /** * Implements hook_query_alter(). */ function mymodule_query_alter(QueryAlterableInterface $query) { if (!empty($query->alterMetaData['view'])) { if (($query->alterMetaData['view']->name == 'popular_authors') && ($query->alterMetaData['view']->current_display == 'ctools_context_1')) { $query->groupBy("node.nid"); } } }