Sei que esta pergunta já foi respondida, mas para alguns usos essas soluções não funcionam. No entanto, depois de fazer algumas pesquisas, encontrei uma solução que funciona para minhas necessidades.
Encontrei uma solução realmente útil que me permitiu corrigir isso. Publiquei o snippet de código no DropBucket. Basicamente, você implementa um alter hook de consulta do Drupal 7 que verifica todas as consultas de exibições em busca de comentários de consulta que especificam uma cláusula e campo groupby. Em seguida, adiciona esse groupby à consulta SQL.
/**
* Found this trick on theoleschool.com.
*
* Description: Allows the view developer to specify the query
* group by action in the query comments. Great way to force the
* removal of duplicates.
*
* Just go into your query comments and type in "groupby:" with
* that colon followed by the field you want to group by.
*
* Examples...
* groupby:node.nid
* groupby:file_managed_file_usage.fid
*
* Ref-Comment: http://theoleschool.com/comment/496#comment-496
* Ref-Article: http://theoleschool.com/blog/using-hookviewsalter-add-group-statement
*/
function mymodule_query_alter(QueryAlterableInterface $query) {
if ($query->hasTag('views')) {
static $count;
$view =& $query->getMetaData('view');
if (strstr($groupby = $view->query->options['query_comment'], 'groupby')) {
list($action, $field) = explode(':', $groupby);
if (strlen($field) > 0) {
$query->groupBy($field);
}
}
}
}
http://dropbucket.org/node/153
A referência de origem está nos comentários na página.