Answers:
您可以通过启用视图聚合设置来删除重复的记录来应用GROUP BY或DISTINCT。
1.进入和编辑您的视图
2.在高级»其他部分通过启用使用聚合:是
 
3.在FIELDS或过滤条件部分,选择和应用聚合设置您或不同的想组的字段。
distinct字段中没有选择,应该在聚合类型中选择哪种类型?
                    我知道这个问题已经得到解答,但是对于某些用途,这些解决方案不起作用。但是,在进行了一些研究之后,我发现了一种可以满足我的需求的解决方案。
我发现了一个非常有用的解决方法,可以解决此问题。我已将代码段发布到DropBucket。基本上,您实现了一个Drupal 7查询alter hook,它检查所有视图查询中是否有指定groupby子句和字段的查询注释。然后将groupby添加到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
源引用在页面的注释中。
我有同样的问题。最终,我通过安装Views Distinct模块解决了它。
视图中的关系或其他联接通常会创建“重复”结果。例如,具有多个值的字段的节点可以在“多值”字段中的每个值一次出现在“视图”中。这令人沮丧,并且Views UI中的“ DISTINCT” SQL查询选项实际上并未解决问题,因为结果行在技术上是不同的。Views Distinct旨在提供一种简单的GUI方法来删除或聚合这些“重复的”行。
多值日期字段存在问题。项目的输入与输入日期一样频繁。这里提到的其他解决方案都没有对我有用。但后来我发现了一个解决方案D6仍然工作在D7 那里。
hook_views_pre_render(&$view)是魔术字。在该示例中,它仅限于一个特定视图的一个特定显示。希望能帮助到你。
function MYMODULE_views_pre_render(&$view) {
  $used_nids = array();
  if ($view->name == 'events') {
    if ($view->current_display == 'page_2') {
      foreach ($view->result as $row) {
        if (!in_array($row->nid, $used_nids)) {
          $new_view_result[] = $row;
          $used_nids[] = $row->nid;
        }
      }
      $view->result = $new_view_result;
    }
  }
}
编辑:不幸的是,如果设置了限制,则此视图将从视图中减去重复项的数量。如果有人可能为此找到解决方案,请发表评论!
这些方法都不适合我,但是Views Random Seed模块实际上可以解决问题。但是,我的问题与使用寻呼机有关。这是该模块的项目页面的引文:
添加带有种子的随机订单处理程序。如果在sql RAND()函数中指定了常量整数参数N,它将用作种子值,该种子值将产生可重复的列值序列。这样可以进行分页,而不会出现两次项目。还可以使用PHP计算自定义种子,从而允许您基于变量(例如日期)创建伪随机数。