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

Chọn 10 bản ghi hàng đầu cho mỗi danh mục

Nếu bạn đang sử dụng SQL 2005, bạn có thể làm như thế này ...

SELECT rs.Field1,rs.Field2 
    FROM (
        SELECT Field1,Field2, Rank() 
          over (Partition BY Section
                ORDER BY RankCriteria DESC ) AS Rank
        FROM table
        ) rs WHERE Rank <= 10

Nếu Tiêu chí Xếp hạng của bạn có ràng buộc thì bạn có thể trả về hơn 10 hàng và giải pháp của Matt có thể tốt hơn cho bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các bản sửa lỗi liên quan đến hiệu suất cho SQL Server 2012

  2. Làm cách nào để tạo yêu cầu HTTP từ máy chủ SQL?

  3. Hiểu kích thước lưu trữ ‘thời gian’ trong SQL Server

  4. Tính tổng số đang chạy trong SQL Server

  5. TODATETIMEOFFSET () Ví dụ trong SQL Server