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

SQL Server:nhóm theo liên tiếp

Trong SQL Server, bạn có thể thực hiện việc này với sự tổng hợp và sự khác biệt của số hàng:

select HevEvenementID, HteTypeEvenID,
       max(HjvNumeSequJour)
from (select t.*,
             row_number() over (partition by HevEvenementID order by HjvNumeSequJour) as seqnum_1,
             row_number() over (partition by HevEvenementID, HteTypeEvenID order by HjvNumeSequJour) as seqnum_2
      from yourtable t
     ) t
group by HevEvenementID, HteTypeEvenID, (seqnum_1 - seqnum_2)
order by max(HjvNumeSequJour);

Tôi nghĩ rằng cách tốt nhất để hiểu cách hoạt động của điều này là nhìn vào kết quả của truy vấn con. Bạn sẽ thấy sự khác biệt giữa hai giá trị xác định các nhóm giá trị liền kề như thế nào.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn bộ xử lý cho SQL Server 2014 - Phần 2

  2. Làm thế nào để hiển thị hình ảnh hoặc thông tin từ cơ sở dữ liệu với nút radio vòng lặp for? trong c #

  3. Mục đích của việc sử dụng CommandType.Tabledirect là gì

  4. Làm thế nào để cài đặt fulltext trên sql server 2008?

  5. Ký hiệu dấu chấm trong SQL