Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Elimina solo i record più vecchi di 50 righe durante il raggruppamento per 1 colonna

Dato che non hai fornito uno schema di tabella, supponiamo che la tabella assomigli a qualcosa di simile a

MyDealersTable
- DealerID
- SomeOtherColumn
- DealerMotherName
- DealerSportInterest
- SomeTimeStamp 

Puoi provare qualcosa come

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

Da CON common_table_expression (Transact-SQL)