2011-01-06 20 views
0

テーブルエントリには、次のデータがあります。特定のレコードは重複しています。重複する基準は同じNoOfEntryとTypeOfEntryです。同じNoOfEntryとTypeOfEntryを持つレコードのうち、min(dateOfEntry)を持つレコードのEntryIdが必要です。SQL Server 2005で重複レコードのIDを見つける方法

たとえば、私はT1用に3つの重複レコードがありますが、EntryID 1001のレコードが最初に入力されたもの(最小DateOfEntry)が必要です。 alt text

答えて

1

ROW_NUMBERランキング機能でCTE(共通テーブル式)を試してみてください。

;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を有する任意の行は、CTEの例えば(NoOfEntry,TypeOfEntry)

+0

おかげに基づいて、重複しています。これはgroupByを使って可能ですか? – Rohit

+0

私はちょっと好奇心から尋ねた。 – Rohit

関連する問題