をDELETE私はこのテーブルの構造を持っている:SQL Serverの:DATEはIS重複<DATE
UNIQUE ID | TYPE | QUARTER | DATE
1 | 1 | JAN | 2/2/2222
2 | 1 | JAN | 4/2/2222
どのように私は、古い日付が重複したレコードを削除しますか? MS SQL 2008で
をDELETE私はこのテーブルの構造を持っている:SQL Serverの:DATEはIS重複<DATE
UNIQUE ID | TYPE | QUARTER | DATE
1 | 1 | JAN | 2/2/2222
2 | 1 | JAN | 4/2/2222
どのように私は、古い日付が重複したレコードを削除しますか? MS SQL 2008で
:任意のSQL重複日付フィールドを想定していない
delete
from MyTable
where Date not in
(
select Quarter, Min(DATE)
from MyTable
group by Quarter
)
で
with cte
as
(
select *, row_number() over(partition by Quarter order by Date) RowNumber
from MyTable
)
delete cte
where RowNumber > 1
。
@alex:「オーバーSQL構造体または文はサポートされていません。」 –
@Pod Mays - これがバージョンについて尋ねられた理由です。別のクエリを試すことはできますか?私はあなたの日付が重複していないと仮定します。 –
@Pod Mays:メッセージをグーグルで見つけよう。私がこれまでに集めたことから、何らかの理由でOVER構造をサポートしていないVSのクエリービルダーによってエラーが生成されたようです。 –
どのようなsqlサーバーのバージョンですか? –
@alex私はそれが2008年だと思います。これはVS2010を内蔵したものです。私は確信していません。 –
Typeが2、1月Quarter、Date 5/2/2222の場合、削除する必要がありますか?または言い換えれば、あなたは四分の一だけでグループ化する必要がありますかタイプによってもグループ化する必要がありますか? –