sql >> Base de Datos >  >> RDS >> Sqlserver

Elimine registros que solo tengan más de 50 filas al agrupar por 1 columna

Dado el hecho de que no proporcionó ningún esquema de tabla, digamos que la tabla se parece a

MyDealersTable
- DealerID
- SomeOtherColumn
- DealerMotherName
- DealerSportInterest
- SomeTimeStamp 

Puedes intentar 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

Desde CON common_table_expression (Transact-SQL)