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

Làm cách nào để nhóm trên các phạm vi liên tục

WITH    q AS
        (
        SELECT  *,
                ROW_NUMBER() OVER (PARTITION BY crew, dayType ORDER BY [date]) AS rnd,
                ROW_NUMBER() OVER (PARTITION BY crew ORDER BY [date]) AS rn
        FROM    mytable
        )
SELECT  MIN([date]), MAX([date]), crew AS name, dayType
FROM    q
GROUP BY
        crew, dayType, rnd - rn

Bài viết này có thể bạn quan tâm:

  • Những thứ SQL cần:SERIES ()


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để loại bỏ ràng buộc mặc định của SQL mà không cần biết tên của nó?

  2. Thủ thuật điều chỉnh hiệu suất yêu thích

  3. Bảng danh sách máy chủ SQL:Cách hiển thị tất cả các bảng

  4. Nhận danh sách tài khoản thư cơ sở dữ liệu trong SQL Server (T-SQL)

  5. Chuyển đổi ‘datetime2’ thành ‘date’ trong SQL Server (Ví dụ T-SQL)