说我有一个表,如下所示SQL服务器查找重复
Employee RecNumber
Joe Bloggs 123456
Joe Bloggs 123456
Bob Bloggs 123457
Dup Bloggs 123456
而我只是想回到所有录制的数字,其中2人有过这不应该发生在同一RecNumber。 注意,一个人可以有相同的请求数量的多次我只是想回来,在那里2人有相同的REC数
因此,所有我想要返回的
123456
说我有一个表,如下所示SQL服务器查找重复
Employee RecNumber
Joe Bloggs 123456
Joe Bloggs 123456
Bob Bloggs 123457
Dup Bloggs 123456
而我只是想回到所有录制的数字,其中2人有过这不应该发生在同一RecNumber。 注意,一个人可以有相同的请求数量的多次我只是想回来,在那里2人有相同的REC数
因此,所有我想要返回的
123456
select record_number
from my_table
group by record_number
having count(distinct employee) > 1
有趣的是,我怀疑样本数据并不能真正让我们区分他的意思和他的单词问题。 – 2012-03-07 18:17:43
SELECT A.RECNUMBER,COUNT(B.EMPLOYEE)
(SELECT DISTINCT RECNUMBER FROM YOURTABLE) A,
YOURTABLE B
WHERE A.RECNUMBER = B.RECNUMBER
GROUP BY A.RECNUMBER
HAVING COUNT(B.EMPLOYEE)=2;
为什么= 2?如果他们有3或4或5或更多? – 2012-03-07 18:17:05
Steve只问了两个人的问题。 – Teja 2012-03-07 18:19:14
对,但你认为他的桌子只有4排吗?他只在他的样本数据中显示了两场比赛,但我认为我们可以推断。 – 2012-03-07 18:21:38
像这样的事情?
SELECT RecNumber FROM Table GROUP BY RecNumber HAVING COUNT(*) > 1
SELECT RecNumber FROM [a table]
GROUP BY RecNumber HAVING COUNT(*) > 1;
或许
SELECT RecNumber FROM (SELECT RecNumber, Employee
FROM [a table]
GROUP BY RecNumber, Employee HAVING COUNT(*) > 1
) AS x;
这将只是返回所有重复recNumber即时看起来如果2名员工具有相同的 – StevieB 2012-03-07 18:17:52
这就是为什么我要求澄清,因为您的示例数据是模糊不清。我还添加了替代解释。 – 2012-03-07 18:22:07
你可以写这样的事情,我认为它的工作:
use *DATABASE_NAME*
go
select *Your_Field*, Nbre=count(*Your_Field*) from *TABLE_NAME*
group by *Your_Field*
having count(*Your_Field*)>1
order by 2 desc
享受
你能clarif你好吗?添加另一行'Bob Bloggs','123457' - 你不想让这个返回正确,因为它是同一个人(呃,一个同名的人,希望你没有两个叫Bob Bob的人,但是在一般来说,这是一种让人分开的可怕方式,因为有些名字很常见)。 – 2012-03-07 18:18:36
您是否也可以指定是否需要2个或更多人使用相同的RecNumber,因为有些人认为这意味着您只关心2个。 –
2012-03-07 18:27:04