我正在尝试列出表格中的所有重复记录。此表没有主键,并且专门创建用于创建报告以列出重复项。它包含唯一值和重复值。
我到目前为止的查询是:
SELECT [OfficeCD]
,[NewID]
,[Year]
,[Type]
FROM [Test].[dbo].[Duplicates]
GROUP BY [OfficeCD]
,[NewID]
,[Year]
,[Type]
HAVING COUNT(*) > 1
这是正确的,并给我所有重复 - 这是它发生的次数。
但我希望在报告中显示所有列的所有值。如果不单独查询每条记录,我怎么能这样做?
例如:
每个表有10个字段,[NewID]是多次出现的字段。我需要创建一个报告,其中包含重复newID的所有字段中的所有数据。
请帮忙。 谢谢。
答案 0 :(得分:2)
你需要一个子查询:
SELECT * FROM yourtable
WHERE NewID IN (
SELECT NewID FROM yourtable
GROUP BY OfficeCD,NewID,Year,Type
HAVING Count(*)>1
)
此外,您可能想要检查您的标签:您标记了mysql
,但语法让我认为您的意思是sql-server
答案 1 :(得分:2)
试试这个:
SELECT * FROM [Duplicates] WHERE NewID IN
(
SELECT [NewID] FROM [Duplicates] GROUP BY [NewID] HAVING COUNT(*) > 1
)
答案 2 :(得分:1)
select d.*
from Duplicates d
inner join (
select NewID
from Duplicates
group by NewID
having COUNT(*) > 1
) dd on d.NewID = dd.NewID