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

Số hàng tăng dần trên nhóm có các nhóm lặp lại

Bạn có thể sử dụng sự khác biệt của số hàng để xác định các nhóm:

select Shade, count(*) as amount
from (select t.*,
             row_number() over (order by level) as seqnum,
             row_number() over (partition by shade order by level) as seqnum_s
      from t
     ) t
group by Shade, (seqnum - seqnum_s);

Có một chút khó khăn để giải thích tại sao điều này lại hiệu quả. Nếu bạn nhìn vào kết quả của truy vấn con, bạn sẽ thấy rõ lý do tại sao sự khác biệt giữa hai row_number() giá trị xác định các nhóm tuần 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. Làm thế nào để định dạng một cột NUMBER trong Oracle?

  2. Đã tìm thấy một biểu tượng sơ đồ quan hệ không xác định trong Oracle SQL Developer

  3. So sánh các nhà cung cấp Oracle .NET bên thứ 3

  4. Tôi muốn chỉ định quyền cho người dùng xem bảng EMP

  5. Tính tuổi của Oracle từ Ngày sinh và Ngày nay