2011-07-12 17 views
2

可能性の重複:
How to remove duplicate records in a table?削除する方法重複レコードから1つを除いてSQLテーブルから重複レコードを削除しますか?

私は、テーブル内のレコードを重複しているPROJECTIDと列のいずれかが含まれている一つのテーブルを持っています。プライマリキー列を持つテーブル。私は1つのレコード&を残りの複製を削除しておきたい。 次のクエリは、重複したレコードの総数を検索することです。の出現 -

SELECT ProjectID, 
COUNT(ProjectID) AS NumOccurrences 
FROM MyTable 
GROUP BY ProjectID 
HAVING (COUNT(ProjectID) > 1) 

どのようにするのですか?

ありがとうございました。

答えて

2
;with cte as 
(
    select row_number() over(partition by ProjectID order by ProjectID) as rn 
    from MyTable 
) 
delete cte 
where rn > 1 
+0

私はそれは私が欲しいもののように正常に動作しますが、それはクエリを解析するときにエラーを以下与え、あなたのクエリを試してみました - 'SQLペインの内容を解析中に、次のエラーが発生しました: OVERのSQL構文またはステートメントをサポートされていません」 – Priyanka

+0

@Priyanka - 私は分かりません。それはうまく動作しますが、解析する際にエラーが発生しますか?どのように解析するのですか?ものによって? –

+0

@Priyanka - 今私は参照してください。それは "SQLペイン"です。 Microsoft Management Studioのビジュアルデザイナーがrow_numberやCommon Table Expressionを処理できないとは思わない。 –

関連する問題