如何在sqlserver中获取重复记录

时间:2018-05-29 07:21:39

标签: sql-server

我有以下数据,

Document#                Name
__________________________________
Doc1                     John
Doc1                     John
Doc1                     Peter

我需要检查是否有任何文件与不同的人有关。例如,在我们的例子中,doc1被引用为人,约翰和彼得。怎么弄这个?

3 个答案:

答案 0 :(得分:1)

尝试按文档聚合,然后检查名称的不同计数:

SELECT [Document#]
FROM yourTable
GROUP BY [Document#]
HAVING COUNT(DISTINCT Name) > 1;

使用自联接的另一种方法:

SELECT DISTINCT t1.[Document#]
FROM yourTable t1
INNER JOIN yourTable t2
    ON t1.Name <> t2.Name;

答案 1 :(得分:0)

查看Count (Distinct) + Having子句组合

SELECT [Document], COUNT(DISTINCT [Name]) [Different names]
FROM MyTable
GROUP BY [Document]
HAVING COUNT(DISTINCT [Name]) > 1

答案 2 :(得分:0)

另一种方法是使用窗口函数,稍微不同的方法,但如果需要,可以提供更多信息:

$this->ci->form_validation->set_error_delimiters('<div class="clearfix"></div><p class="alert alert-danger">','</p>');
return $this->ci->form_validation->run();