Ich möchte nur 1000 Einträge für jede Client-ID behalten. Der Code unten tut, was ich will, aber nicht durch die clientid, sondern 1000 insgesamt von einem der Clients.SQL-Looping löschen
Gibt es eine Möglichkeit, dies in SQL zu tun? Mir wurde gesagt, ich brauche einen Cursor, aber ich hoffe nicht.
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)
Das rockt! Ich habe noch nie zuvor eine Partition nach oder einen Rang verwendet. Danke edsoverflow. – Bryan