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

Đếm số lượng giá trị xuất hiện liên tiếp trong bảng

Một cách tiếp cận là sự khác biệt của số hàng:

select name, count(*) 
from (select t.*,
             (row_number() over (order by id) -
              row_number() over (partition by name order by id)
             ) as grp
      from t
     ) t
group by grp, name;

Logic dễ hiểu nhất nếu bạn chạy truy vấn con và xem xét các giá trị của từng số hàng một cách riêng biệt và sau đó xem xét sự khác biệt.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm các đối tượng bị hỏng trong SQL Server

  2. Cách @@ MAX_CONNECTIONS hoạt động trong SQL Server

  3. Chỉ mục không sử dụng máy chủ SQL

  4. Chuyển đổi văn bản hộp văn bản thành số nguyên

  5. Chuyển đổi các hàng và cột mà không có tổng hợp