SQL-Frage, Abfrage, Prozedur oder Funktion
P粉253518620
P粉253518620 2024-04-03 10:14:31
0
1
335

Das ist die Beschreibung.

Es gibt eine Tabelle, die die Zeitintervalle auflistet, die zum Ausführen einer bestimmten Aufgabe erforderlich sind:

id Starten Abgeschlossen
1 07:00:00 11:00:00
2 12:30:00 17:00:00
3 11:30:00 14:00:00
4 09:30:00 11:30:00
5 10:00:00 15:00:00
6 09:00:00 13:30:00
7 07:00:00 11:30:00

Diese Aufgaben können nicht gleichzeitig erledigt werden. Ich muss herausfinden, wie viele Tage mindestens erforderlich sind, um alle Aufgaben zu erledigen.

In dieser Tabelle kann ich mindestens 5 Tage damit verbringen, die Aufgabe zu erledigen.

day 1 => task 1 and task 2
day 2 => task 4 and task 3
day 3 => task 5
day 4 => task 6
day 5 => task 7

Das Ergebnis sollte also 5 sein. Ich hoffe es ist klar, vielen Dank im Voraus!

P粉253518620
P粉253518620

Antworte allen(1)
P粉195200437
SELECT COUNT(*)
FROM test t1
JOIN test t2 ON 
-- these 2 conditions checks for overlapping
                t1.start 

您必须简单地计算同时任务的最大数量。检查每个任务的开始时间就足够了。

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=ee3034a307c32212db365ba06f654f9f 一个>

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage