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

Truy vấn hoạt động tối ưu cho bản ghi mới nhất cho mỗi N

Phụ thuộc vào dữ liệu của bạn (có bao nhiêu hàng cho mỗi nhóm?) Và các chỉ mục của bạn.

Xem Tối ưu hóa truy vấn TOP N cho mỗi nhóm để biết một số so sánh hiệu suất của 3 cách tiếp cận.

Trong trường hợp của bạn với hàng triệu hàng chỉ cho một số lượng nhỏ Phương tiện, tôi sẽ thêm chỉ mục trên VehicleID, Timestamp và làm

SELECT CA.*
FROM   Vehicles V
       CROSS APPLY (SELECT TOP 1 *
                    FROM   ChannelValue CV
                    WHERE  CV.VehicleID = V.VehicleID
                    ORDER  BY TimeStamp DESC) CA  


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đổi tên khóa ngoại trong SQL Server bằng T-SQL

  2. Sử dụng biến trong câu lệnh SQL LIKE

  3. Trả lại Tên máy chủ cục bộ trong SQL Server bằng @@ SERVERNAME

  4. Giải mã kiểu chờ CXPACKET và CXCONSUMER trong SQL Server

  5. SQL Server:Mẹo hữu ích cho người mới