Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Usuń rekordy starsze niż 50 wierszy podczas grupowania według 1 kolumny

Biorąc pod uwagę fakt, że nie podałeś schematu tabeli, powiedzmy, że tabela wygląda mniej więcej tak

MyDealersTable
- DealerID
- SomeOtherColumn
- DealerMotherName
- DealerSportInterest
- SomeTimeStamp 

Możesz spróbować czegoś takiego jak

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

Od Z common_table_expression (Transact-SQL)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oblicz łączną liczbę dni roboczych między dwiema datami

  2. Jak znaleźć login, nazwę użytkownika bazy danych lub role użytkownika domeny sqlserver, który nie ma własnego loginu?

  3. Jak ustawić i zaindeksować na dwóch kolumnach zadeklarowaną w T-SQL zmienną tabeli?

  4. Jak zwrócić przyrostowy numer grupy na grupę w SQL?

  5. Znajdź ostatni wiersz w grupie według zapytania-SQL Server