Maison > Questions et réponses > le corps du texte
Voici la description.
Il existe un tableau qui répertorie les intervalles de temps nécessaires pour effectuer une tâche spécifique :
id | Démarrer | Complet |
---|---|---|
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 |
Ces tâches ne peuvent pas être accomplies en même temps. J'ai besoin de connaître le nombre minimum de jours requis pour accomplir toutes les tâches.
Dans ce tableau, je peux passer au moins 5 jours pour terminer la tâche.
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
Le résultat devrait donc être 5. J'espère que c'est clair, merci d'avance !
P粉1952004372024-04-04 09:43:56
SELECT COUNT(*) FROM test t1 JOIN test t2 ON -- these 2 conditions checks for overlapping t1.start < t2.finish AND t2.start < t1.finish -- this condition simply decreases the amount of combined rows -- to be examined, it does not effect the output AND t1.id <= t2.id GROUP BY t1.id -- retrieve only maximal value ORDER BY 1 DESC LIMIT 1
Vous devez simplement calculer le nombre maximum de tâches simultanées. Il suffit de vérifier l'heure de début de chaque tâche.
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=ee3034a307c32212db365ba06f654f9f 一个>