0
表項具有以下數據。某些記錄是重複的。重複的標準是相同的NoOfEntry和TypeOfEntry。在具有相同NoOfEntry和TypeOfEntry的記錄中,我想要具有min(dateOfEntry)的記錄的EntryId。我們有3個重複的記錄T1,我想記錄EntryID 1001,因爲它首先被輸入(最小DateOfEntry)。如何在SQL SERVER 2005中查找重複記錄的標識
表項具有以下數據。某些記錄是重複的。重複的標準是相同的NoOfEntry和TypeOfEntry。在具有相同NoOfEntry和TypeOfEntry的記錄中,我想要具有min(dateOfEntry)的記錄的EntryId。我們有3個重複的記錄T1,我想記錄EntryID 1001,因爲它首先被輸入(最小DateOfEntry)。如何在SQL SERVER 2005中查找重複記錄的標識
嘗試CTE(公共表表達式)有ROW_NUMBER
排名功能:
;WITH duplicates AS
(
SELECT
EntryID, DateOfEntry
ROW_NUMBER() OVER (PARTITION BY NoOfEntry,TypeOfEntry
ORDER BY DateOfEntry DESC) 'RowNum'
FROM dbo.Enty
)
SELECT EntryID FROM duplicates
WHERE RowNum > 1
GO
的CTE將 「分區」 您通過(NoOfEntry,TypeOfEntry)
數據,並開始分配連續的數字(1,2, 3,......)分配給這兩列的每一組的每一行。
具有RowNum > 1
任何行是重複的,基於(NoOfEntry,TypeOfEntry)
感謝您的CTE例子。這可能使用groupBy嗎? – Rohit 2011-01-06 10:23:55