Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Excluir registros com mais de 50 linhas ao agrupar por 1 coluna


Dado o fato de que você não forneceu nenhum esquema de tabela, digamos que a tabela se pareça com
MyDealersTable
- DealerID
- SomeOtherColumn
- DealerMotherName
- DealerSportInterest
- SomeTimeStamp 

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

De COM common_table_expression (Transact-SQL)