Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Löschen Sie nur Datensätze, die älter als 50 Zeilen sind, während Sie nach 1 Spalte gruppieren

Angesichts der Tatsache, dass Sie kein Tabellenschema angegeben haben, nehmen wir an, die Tabelle sieht in etwa so aus

MyDealersTable
- DealerID
- SomeOtherColumn
- DealerMotherName
- DealerSportInterest
- SomeTimeStamp 

Sie können so etwas wie

versuchen
;WITH Dealers AS (
    SELECT *,
        ROW_NUMBER() OVER(PARTITION BY DealerID ORDER BY SomeTimeStamp DESC) RowID
    FROM MyDealersTable
)
DELETE 
FROM Dealers
WHERE RowID > 50

Von MIT common_table_expression (Transact-SQL)