


Wie finde ich Mindest- und Höchstwerte für aufeinanderfolgende Zeilen basierend auf bestimmten Aktwerten?
Jan 05, 2025 am 08:44 AMIdentifizieren aufeinanderfolgender Zeilengruppen für die Aggregation
Problem:
Rufen Sie die minimalen und maximalen Werte von startt und ab endd für aufeinanderfolgende Zeilen mit bestimmten Aktwerten. Jeder eindeutige Name definiert eine eindeutige Abfolge von Aktvorkommnissen. Die Eingabe stellt keine zusätzlichen Spalten zur Zeilenidentifizierung bereit.
Ansatz:
Um die Zeilenidentität innerhalb jeder Name-Act-Gruppe festzulegen, verwenden wir Zeilennummern:
row_number() over (partition by name, act order by rn) as act_n row_number() over (partition by name order by rn) as rn
Diese Zeilennummern ermöglichen es uns, Zeilen innerhalb einer Gruppe zu unterscheiden und aufeinanderfolgende Handlungsbereiche zu identifizieren Werte.
Aggregation für Min und Max:
Um die gewünschte Ausgabe für jede Name-Akt-Kombination zu finden, aggregieren wir die Daten in aufeinanderfolgenden Zeilengruppen. Die Schlüsselberechnung ist die Differenz zwischen den beiden Zeilennummern:
rn - act_n diff
Diese Differenz stellt die Position innerhalb jeder Gruppe dar und ermöglicht es uns, aufeinanderfolgende Bereiche zu bestimmen.
select name, act, min(startt) startt, max(endd) endd from ( select name, act, row_number() over (partition by name order by name, startt) rn, row_number() over (partition by name, act order by name, startt) act_n, startt, endd from @t ) group by (rn - act_n), name, act order by name;
Diese Abfrage gruppiert die Daten anhand der Zeilennummerndifferenz und liefert so die gewünschte Ausgabe.
Das obige ist der detaillierte Inhalt vonWie finde ich Mindest- und Höchstwerte für aufeinanderfolgende Zeilen basierend auf bestimmten Aktwerten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Reduzieren Sie die Verwendung des MySQL -Speichers im Docker

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung?

So lösen Sie das Problem der MySQL können die gemeinsame Bibliothek nicht öffnen

Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin)

Ausführen mehrerer MySQL-Versionen auf macOS: Eine Schritt-für-Schritt-Anleitung

Wie sichere ich mich MySQL gegen gemeinsame Schwachstellen (SQL-Injektion, Brute-Force-Angriffe)?

Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen?
