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

Cách thêm số thứ tự cho các nhóm trong truy vấn SQL mà không có bảng tạm thời

Dữ liệu mẫu

create table sometable([group] varchar(10), id int, somedata int)
insert sometable select 'Horses', 9, 11
insert sometable select 'chickens', 19, 121
insert sometable select 'Horses', 29, 123
insert sometable select 'chickens', 49, 124
insert sometable select 'Cows', 98, 1
insert sometable select 'Horses', 99, 2

Truy vấn

select
    Record = ROW_NUMBER() over (order by [Group], id),
    [Group],
    GroupSequence = DENSE_RANK() over (order by [Group])
from sometable

Đầu ra

Record               Group      GroupSequence
-------------------- ---------- --------------------
1                    chickens   1
2                    chickens   1
3                    Cows       2
4                    Horses     3
5                    Horses     3
6                    Horses     3


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Vô hiệu hóa ràng buộc khóa ngoại, vẫn không thể cắt bớt bảng? (SQL Server 2005)

  2. Kết quả SSMS thành Grid - CRLF không được bảo toàn trong sao chép / dán - bất kỳ kỹ thuật nào tốt hơn?

  3. Tôi có thể chuyển biến để chọn câu lệnh làm tên cột trong SQL Server không

  4. Làm cách nào để lấy danh sách ID từ bảng SQL dưới dạng chuỗi giá trị được phân tách bằng dấu phẩy?

  5. Tính số ngày có mặt và vắng mặt trong bảng