Heim > Datenbank > MySQL-Tutorial > Kann die Zusammenführung überlappender Datumsintervalle für mehr Effizienz optimiert werden?

Kann die Zusammenführung überlappender Datumsintervalle für mehr Effizienz optimiert werden?

DDD
Freigeben: 2024-12-30 16:56:10
Original
951 Leute haben es durchsucht

Can Merging Overlapping Date Intervals Be Optimized for Greater Efficiency?

Überlappende Datumsintervalle zusammenführen

Problem:

Kann der Prozess des Zusammenführens überlappender Datumsintervalle durchgeführt werden? Sei verbessert?

Diskussion:

Die im ursprünglichen Beitrag vorgestellte Lösung ist unkompliziert, es stehen jedoch möglicherweise effizientere Methoden zur Verfügung.

Lösung:

Eine alternative Lösung ist vom Beitrag „Kombinieren Sie überlappende Datums- und Uhrzeitangaben, um einen einzelnen überlappenden Bereich zurückzugeben“ inspiriert Datensatz.“

Diese Lösung verwendet eine Unterabfrage, um das maximale Enddatum innerhalb jedes Intervalls zu identifizieren, und führt dann einen Self-Join-Vorgang durch, um überlappende Intervalle zu kombinieren:

SELECT 
       s1.StartDate,
       --t1.EndDate 
       MIN(t1.EndDate) AS EndDate
FROM @T s1 
INNER JOIN @T t1 ON s1.StartDate <= t1.EndDate
  AND NOT EXISTS(SELECT * FROM @T t2 
                 WHERE t1.EndDate >= t2.StartDate AND t1.EndDate < t2.EndDate) 
WHERE NOT EXISTS(SELECT * FROM @T s2 
                 WHERE s1.StartDate > s2.StartDate AND s1.StartDate <= s2.EndDate) 
GROUP BY s1.StartDate 
ORDER BY s1.StartDate 
Nach dem Login kopieren

Ergebnisse:

Mit dieser Lösung werden folgende Ergebnisse erzielt:

StartDate EndDate
2010-01-01 2010-06-13
2010-06-15 2010-06-25
2010-06-26 2010-08-16
2010-11-01 2010-12-31

Das obige ist der detaillierte Inhalt vonKann die Zusammenführung überlappender Datumsintervalle für mehr Effizienz optimiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage