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

Oracle SQL cách nhóm theo, nhưng có nhiều hàng nếu nhóm được lặp lại vào một ngày sau đó

Đây là một vấn đề về khoảng cách và những hòn đảo. Có nhiều cách tiếp cận khác nhau, nhưng một cách đơn giản sử dụng sự khác biệt của số hàng:

with paaf as (<your first query here>
     )
select paaf.assignment_id,
       paaf.position_id,
       min(paaf.effective_start_date) as effective_start_date,
       max(paaf.effective_end_date) as effective_end_date
from (select paaf.*,
             row_number() over (order by effective_start_date) as seqnum,
             row_number() over (partition by position_id order by effective_start_date) as seqnum_p
      from paaf
     ) paaf
group by (seqnum - seqnum_p), position_id, assignment_id;



  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ôi có thể vô hiệu hóa một trình kích hoạt bên trong một trình kích hoạt trong oracle không?

  2. Tìm hiểu lịch sử của các truy vấn SQL

  3. Oracle 11g TẠO CHẾ ĐỘ XEM bằng cách sử dụng CONNECT BY và nhiều bảng

  4. 40 câu hỏi bạn phải biết về R12.2

  5. Cách gửi một yêu cầu POST với dữ liệu biểu mẫu và các tham số trong PL / SQL