我正在尝试在一个表中列出所有重复的记录。此表没有主键,仅为创建列出重复项的报告而专门创建。它由唯一值和重复值组成。
到目前为止,我得到的查询是:
SELECT [OfficeCD]
,[NewID]
,[Year]
,[Type]
FROM [Test].[dbo].[Duplicates]
GROUP BY [OfficeCD]
,[NewID]
,[Year]
,[Type]
HAVING COUNT(*) > 1
这是正确的,并给了我所有的重复-这是它发生的次数。
但是我想在我的报告中显示所有列的所有值。如何在不单独查询每条记录的情况下做到这一点?
例如:
每个表有10个字段,NewID是出现多次的字段。我需要创建一个包含重复newID的所有字段中的所有数据的报告。
请帮帮忙。谢谢。
发布于 2012-02-13 15:01:27
您需要一个子查询:
SELECT * FROM yourtable
WHERE NewID IN (
SELECT NewID FROM yourtable
GROUP BY OfficeCD,NewID,Year,Type
HAVING Count(*)>1
)
此外,您可能想要检查您的标记:您标记了mysql
,但是语法让我认为您指的是sql-server。
发布于 2012-02-13 15:01:54
试试这个:
SELECT * FROM [Duplicates] WHERE NewID IN
(
SELECT [NewID] FROM [Duplicates] GROUP BY [NewID] HAVING COUNT(*) > 1
)
发布于 2012-02-13 15:02:48
select d.*
from Duplicates d
inner join (
select NewID
from Duplicates
group by NewID
having COUNT(*) > 1
) dd on d.NewID = dd.NewID
https://stackoverflow.com/questions/9262603
复制