と一致した場合、私は私のテーブル内の3つの列2列データが
キー名を持つSQL表から1つの重複行を削除し、 番号、 データ
は、データが重複したエントリの多くで構成されています。 "KeyName"と "Data"が繰り返されている場合は、テーブルの重複エントリのそれぞれから1行を削除する必要があります。 これを達成する方法はSQLクエリです。
と一致した場合、私は私のテーブル内の3つの列2列データが
キー名を持つSQL表から1つの重複行を削除し、 番号、 データ
は、データが重複したエントリの多くで構成されています。 "KeyName"と "Data"が繰り返されている場合は、テーブルの重複エントリのそれぞれから1行を削除する必要があります。 これを達成する方法はSQLクエリです。
これは、それをあなたのRDBMSが何であるかを
WITH CTE
AS (SELECT KeyName
, Number
, Data
, [rn] = ROW_NUMBER() OVER(PARTITION BY KeyName
, Data ORDER BY KeyName
, Data)
FROM yourtable)
/* UNCOMMENT BELOW TO DELETE */
--DELETE
--FROM CTE
--WHERE rn > 1;
SELECT *
FROM CTE
WHERE rn > 1;
これはあなたに感謝しました – Peekay
あなたはrow_number()
を使用して、各ペアの1行を保つことができます。
with todelete as (
select t.*,
row_number() over (partition by keyname, data order by (select NULL)) as seqnum
from t
)
delete
from todelete
where seqnum > 1;
いずれかのような操作と同じように、あなたは削除する前にまず確認する必要があります。これは簡単です:
with todelete as (
select t.*,
row_number() over (partition by keyname, data order by (select NULL)) as seqnum
from t
)
select *
from todelete
where seqnum > 1;
あなたの正解をちょうど受け取った。申し訳ありませんstackoverflow does notは2つの答えが正しいとマークされることを許可します。あなたの応答のためにありがとうございます – Peekay
@arun。 。 。どの回答が受け入れられるかの決定は、完全にOPまでです。 –
すればよいですか? SQL Server、Postgres、MySQL ... ....? –
重複が3つ以上ある場合はどうなりますか? –
MineはSQLサーバーです。私は2つ以上の重複したエントリしかありません。私は手動で削除すると思った。 – Peekay