2016-12-06 8 views
1

Id列の重複する行を削除する方法はすでに分かっています。しかし、私はサーバー上の何かを削除することはできません。私が必要とするのは、重複行を無視する(1つだけを取ります)WITHステートメントです。テーブル内のデータを変更せずにこれを行う方法はありますか?重複を無視して削除しない

P.S.1重複する行はすべて同一です。だから、どれを維持するかを決める必要はありません。

あなたはすべての列の選択DISTINCTを行いCTEを使用することができます私はむしろ、余分な一時テーブルを作成していないと思いPS2(SELECT * INTO ...

+0

表スキーマしてください。 – Arion

+0

@Arion 'Id'カラムに重複値を持つテーブル。 – Disasterkid

答えて

1

WITH cte AS (
    SELECT DISTINCT Id, col1, col2, ..., colN 
    FROM yourTable 
) 

ます。また、使用してこれを実現することができすべての列のGROUP BY

WITH cte AS (
    SELECT Id, col1, col2, ..., colN 
    FROM yourTable 
    GROUP BY Id, col1, col2, ..., colN 
) 

Id値がされていない場合は重複していますが、他のすべての列は、次に試すことができます:

WITH cte AS (
    SELECT MIN(Id) AS Id, col1, col2, ..., colN 
    FROM yourTable 
    GROUP BY col1, col2, ..., colN 
) 
+0

私はすぐにそれを試し、あなたに戻ってきます。ありがとう! – Disasterkid

+0

私はIDがユニークだと思うので、うまくいきません。 – under

+1

@Disasterkid 'Id'の値は一意ですか、それとも重複していますか? –

関連する問題