Die Herausforderung besteht darin, mithilfe von SQL überlappende Gebote anhand von Datum und Uhrzeit zu erkennen und anzugeben, mit welchen Geboten sie sich überschneidet.Erkennen überlappender Datums-/Uhrzeiteinträge und Anzeigen der Überschneidungen mit SQL
Betrachten Sie die Tabelle und Datensätze:
-------------------------------------------------------------------
| person_id | bid_id | start_at | end_at |
-------------------------------------------------------------------
| 1 | 10 | 2016-10-30 09:00 AM | 2016-10-30 11:00 AM |
| 1 | 20 | 2016-10-30 10:00 AM | 2016-10-30 12:00 PM |
| 1 | 30 | 2016-10-30 05:00 PM | 2016-10-30 06:00 PM |
| 1 | 40 | 2016-10-30 11:45 AM | 2016-10-30 02:00 PM |
| 2 | 50 | 2016-10-30 07:00 PM | 2016-10-30 08:00 PM |
| 2 | 60 | 2016-10-30 07:00 PM | 2016-10-30 08:00 PM |
| 2 | 70 | 2016-10-30 09:00 PM | 2016-10-30 10:00 PM |
-------------------------------------------------------------------
gewünschte Ausgabe:
--------------------------------------------
| person_id | bid_id | overlapping_bid_ids |
--------------------------------------------
| 1 | 10 | { 20 } |
| 1 | 20 | { 10, 40 } |
| 1 | 40 | { 20 } |
| 2 | 50 | { 60 } |
| 2 | 60 | { 50 } |
--------------------------------------------
Nitpicking: Der "Überlappungs" -Operator ist nicht Postgres-spezifisch und gehört zum SQL-Standard. –
Vielen Dank! –