Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Chỉ xóa các bản ghi cũ hơn 50 hàng trong khi nhóm theo 1 cột

Với thực tế là bạn không cung cấp lược đồ bảng, hãy giả sử bảng trông giống như

MyDealersTable
- DealerID
- SomeOtherColumn
- DealerMotherName
- DealerSportInterest
- SomeTimeStamp 

Bạn có thể thử một cái gì đó như

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

Từ WITH 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. Chuyển loại bảng do người dùng xác định giữa cơ sở dữ liệu SQL Server

  2. Giải thích về ANSI_NULLS của Máy chủ SQL

  3. Trả lại tất cả các cột không được tính toán từ một bảng trong SQL Server

  4. Tìm tất cả các khoảng trống số nguyên trong SQL

  5. Tạo bảng tạm thời với sql động trong SQL Server 2008