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

SQL - Hạn chế số lượng hàng được trả về dựa trên số lượng hàng

Sử dụng ROW_NUMBER() chức năng này:

SELECT *
FROM (select *,ROW_NUMBER() OVER (PARTITION BY group_id ORDER BY item_id) as RowRank 
      from items_in_groups
      )sub
WHERE RowRank <=2

Demo: SQL Fiddle

ROW_NUMBER() hàm gán một số cho mỗi hàng. PARTITION BY là tùy chọn, nhưng được sử dụng để bắt đầu đánh số lại cho từng giá trị trong nhóm đó, tức là:nếu bạn PARTITION BY group_id sau đó cho mỗi group_id duy nhất giá trị đánh số sẽ bắt đầu lại ở 1. ORDER BY tất nhiên được sử dụng để xác định cách đếm và được yêu cầu trong ROW_NUMBER() chức năng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trình kích hoạt Máy chủ lưu ở đâu trong SQL Server?

  2. Chọn các giá trị riêng biệt từ 1 cột

  3. Cách lấy chênh lệch múi giờ từ tên múi giờ

  4. Tìm kiếm động các cột cho bảng nhất định

  5. Bảo mật tích hợp =Sai