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

Cách lấy bản ghi đầu tiên ra khỏi mỗi nhóm từ kết quả được truy xuất bằng cách sử dụng lệnh nhóm theo lệnh

declare @T table (ID int, GroupID int, Qty int)
insert into @T values
(1, 1, 100),
(2, 1, 200),
(3, 1, 300),
(4, 2, 98),
(5, 2, 198),
(6, 3, 175),
(7, 3, 275),
(8, 3, 375),
(9, 4, 215)

;with cte as
(
  select
    ID,
    GroupID,
    Qty,
    rank() over(partition by GroupID order by ID) as rn
  from @T
)  
select ID, GroupID, Qty
from cte
where rn = 1


  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ách thay đổi giản đồ của một đối tượng (Bảng, Dạng xem, Thủ tục đã Lưu trữ) trong Cơ sở dữ liệu SQL Server - Hướng dẫn SQL Server / TSQL Phần 28

  2. Cuộc gọi ODBC không thành công với thủ tục được lưu trữ - Chuyển qua truy vấn

  3. Gọi thủ tục được lưu trữ với tham số có giá trị bảng từ java

  4. UNION so với DISTINCT về hiệu suất

  5. Tạo trường hợp cho dịch vụ SQL Server thông thường