PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Menghapus acara yang sebagian/sepenuhnya tumpang tindih dengan stempel waktu mulai dan berakhir di beberapa nilai

Kondisi bergabung:

Jika Anda tidak dapat menemukan baris lain berarti Anda sendirian karena tidak tumpang tindih atau karena Anda adalah tanggal terbaru.

SQL DEMO

SELECT a.*
FROM "events" a
LEFT JOIN "events" b
  ON a.room = b.room 
 AND a.id <> b.id
 AND a."start" <= b."end"
 AND a."end"   >= b."start"
 AND a.created_at < b.created_at
WHERE b.id IS NULL;

KELUARAN

| id |                start |                  end |                  created_at |  room |
|----|----------------------|----------------------|-----------------------------|-------|
|  2 | 2019-01-23T18:30:00Z | 2019-01-23T19:00:00Z | 2019-01-23T01:04:05.861876Z | Room1 |
|  7 | 2019-01-23T20:15:00Z | 2019-01-23T20:45:00Z |  2019-01-20T20:20:20.20202Z | Room1 |
|  9 | 2019-01-23T18:30:00Z | 2019-01-23T19:00:00Z | 2019-01-23T01:04:05.861877Z | Room2 |
| 14 | 2019-01-23T20:15:00Z | 2019-01-23T20:45:00Z |  2019-01-20T20:20:20.20202Z | Room2 |
| 16 | 2019-01-23T20:15:00Z | 2019-01-23T20:45:00Z | 2019-01-20T20:20:20.202021Z | Room3 |


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres UNTUK LOOP

  2. Apakah kesalahan yang dikembalikan oleh db.Exec(...) memiliki kode?

  3. cara memperbaiki OperationalError:(psycopg2.OperationalError) server menutup koneksi secara tidak terduga

  4. Kueri Zona Waktu Optimalkan/Indeks

  5. Mengikat variabel untuk nama kolom di PHP untuk kueri Postgresql