Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Supprimer uniquement les enregistrements de plus de 50 lignes lors du regroupement par 1 colonne

Étant donné que vous n'avez fourni aucun schéma de table, disons que la table ressemble à quelque chose comme

MyDealersTable
- DealerID
- SomeOtherColumn
- DealerMotherName
- DealerSportInterest
- SomeTimeStamp 

Vous pouvez essayer quelque chose comme

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

De AVEC common_table_expression (Transact-SQL)