に別個の行を残してテーブルから重複行を削除します。最小限のSQL文でどのように達成するのですか?MSSQLクエリは、私は同じ<code>customer_id</code>と<code>deactivation_date</code>を有するテーブル<code>Log</code>から同様の行の最初の発生</strong>除くすべての重複行を削除<strong>に必要表
私はMS SQL Server 2008 Express Editionを使用しています。
に別個の行を残してテーブルから重複行を削除します。最小限のSQL文でどのように達成するのですか?MSSQLクエリは、私は同じ<code>customer_id</code>と<code>deactivation_date</code>を有するテーブル<code>Log</code>から同様の行の最初の発生</strong>除くすべての重複行を削除<strong>に必要表
私はMS SQL Server 2008 Express Editionを使用しています。
ような何か:
DELETE FROM Log WHERE LogId NOT IN
(SELECT Min(LogId) FROM Log GROUP BY customer_id, deactivation_date)
あなたは私たちに多くの仕事を提供しているわけではありません。しかし、おそらくこのような何か:
;WITH CTE
AS
(
SELECT
ROW_NUMBER() OVER(PARTITION BY [Log].customer_id ORDER BY
deactivation_date) AS RowNbr,
[Log].*
FROM
[Log]
)
DELETE FROM [Log]
WHERE EXISTS
(
SELECT
NULL
FROM
CTE
WHERE
CTE.RowNbr>1
AND CTE.log_id =[Log].log_id
)
または:
with cte as (
select row_number() over (partition by customer_id, deactivation_date
order by log_id) as rn
from Log)
delete from cte
where rn > 1;
uは使用してrはどのようなクエリ.. –
使用しているSQLサーバーのバージョンは何? – Arion
@Arion sql 2008 express edition –