Heim > Datenbank > MySQL-Tutorial > Wie finde ich minimale und maximale Start- und Endzeiten für aufeinanderfolgende Zeilen innerhalb von Aktivitätsgruppen?

Wie finde ich minimale und maximale Start- und Endzeiten für aufeinanderfolgende Zeilen innerhalb von Aktivitätsgruppen?

Susan Sarandon
Freigeben: 2025-01-03 01:03:39
Original
681 Leute haben es durchsucht

How to Find Minimum and Maximum Start and End Times for Consecutive Rows within Activity Groups?

Mindest- und Höchstwerte für aufeinanderfolgende Zeilen ermitteln

Sie haben einen Datensatz mit Zeilen, die Aktivitäten darstellen, nach Namen gruppiert und nach Zeilennummer geordnet. Das Ziel besteht darin, die Mindest- und Höchstwerte der Start- und Endzeiten für aufeinanderfolgende Zeilen innerhalb jeder Aktivitätsgruppe zu ermitteln.

Lösung mithilfe der Zeilennummerndifferenz:

Ein Ansatz ist um den Unterschied zwischen Zeilennummern zu verwenden, um aufeinanderfolgende Zeilen desselben zu identifizieren Aktivität:

with cte as (
  select *,
    row_number() over (partition by name order by rn) as seqnum_n,
    row_number() over (partition by name, act order by rn) as seqnum_na
  from input
)
select name, act, min(startt), max(endd)
from cte
group by seqnum_n - seqnum_na, name, act;
Nach dem Login kopieren

Erklärung:

  1. Erstellen Sie einen allgemeinen Tabellenausdruck (CTE) namens cte, indem Sie zwei zusätzliche Spalten hinzufügen:

    • seqnum_n: Zeilennummer innerhalb jedes Namens Gruppe.
    • seqnum_na: Zeilennummer innerhalb jeder Namens-Aktivitätsgruppe.
  2. Berechnen Sie die Differenz zwischen seqnum_n und seqnum_na. Aufeinanderfolgende Zeilen innerhalb jeder Aktivität haben denselben Differenzwert.
  3. Gruppieren Sie nach Differenzwert, Name und Aktivität, um die Mindest- und Höchstwerte zu aggregieren.

Das obige ist der detaillierte Inhalt vonWie finde ich minimale und maximale Start- und Endzeiten für aufeinanderfolgende Zeilen innerhalb von Aktivitätsgruppen?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage