DELETEできます cte から:
WITH cte AS (SELECT *,ROW_NUMBER() OVER(PARTITION BY uniqueid ORDER BY col2)'RowRank' FROM Table) DELETE FROM cte WHERE RowRank > 1プレ>
ROW_NUMBER()関数は各行に番号を割り当てます。PARTITION BYそのグループ内の各項目の番号付けをやり直すために使用されます。この場合、uniqueidの各値 番号は 1 から始まり、そこから上がります。ORDER BY数字が入る順序を決定します。各uniqueidからROW_NUMBER()を持つすべてのレコードに 1 から番号が付けられます 1 より大きい場合、uniqueidが重複しています
ROW_NUMBER()の仕組みを理解するには 関数は機能します。試してみてください:SELECT *,ROW_NUMBER() OVER(PARTITION BY uniqueid ORDER BY col2)'RowRank' FROM Table ORDER BY uniqueidプレ>
ROW_NUMBER()のロジックを調整できます 保持または削除するレコードを調整する機能。たとえば、これを複数のステップで実行したい場合、最初に姓が同じで名が異なるレコードを削除し、
PARTITION BYに姓を追加できます。 :WITH cte AS (SELECT *,ROW_NUMBER() OVER(PARTITION BY uniqueid, col3 ORDER BY col2)'RowRank' FROM Table) DELETE FROM cte WHERE RowRank > 1プレ>