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

Làm cách nào để xóa các sự kiện chồng chéo một phần / hoàn toàn có dấu thời gian bắt đầu và kết thúc khỏi kết quả truy vấn?

Đây là một dạng của khoảng trống và đảo. Trong trường hợp này, hãy xác định vị trí các hòn đảo bắt đầu bằng cách tìm kiếm các điểm chồng chéo ở phần đầu. Sau đó, thực hiện tổng tích lũy của các lần bắt đầu và tổng hợp:

select max(id), min(start), max(end), max(created_at)
from (select t.*,
             count(*) filter (where max_end < end) over (order by start) as grouping
      from (select t.*,
                   max(end) over (order by start rows between unbounded preceding and 1 preceding) as max_end
            from events t
           ) t
     ) t
group by grouping;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. NULL so với `vô cực` trong các loại phạm vi PostgreSQL

  2. Sao chép một bảng (bao gồm các chỉ mục) trong postgres

  3. Lỗi cú pháp PostgreSQL trong truy vấn được tham số hóa vào ngày $ 1

  4. PostgreSQL Sqlalchemy cam kết mất rất nhiều thời gian

  5. Cách liệt kê tất cả cơ sở dữ liệu bằng PostgreSQL