clientid ごとに 1000 エントリのみを保持したいと考えています。以下のコードは私が望むことを行いますが、clientid をループせず、代わりに合計 1000 のクライアントを保持します。
SQLでこれを行う方法はありますか? カーソルが必要だと言われましたが、そうでないことを望んでいます。
DECLARE @ids TABLE ( id int )
DECLARE @clients TABLE ( clientid varchar(20) )
INSERT INTO @clients (clientid)
SELECT select distinct clientid FROM tRealtyTrac
INSERT INTO @ids (id)
SELECT top 1000 id FROM tRealtyTrac WHERE clientid in (select clientid from @clients)
DELETE trealtytrac WHERE id NOT IN (select id from @ids)