So erhalten Sie die Anzahl aufeinanderfolgender Daten

8

Zum Beispiel gibt es eine Tabelle mit Daten:

%Vor%

Ich muss ms sql query schreiben, die die Anzahl der aufeinanderfolgenden Daten ab jedem Datum in der Tabelle zurückgibt. Also wird das Ergebnis wie folgt aussehen:

%Vor%

Es scheint mir, dass ich LAG- und LEAD-Funktionen verwenden sollte, aber jetzt kann ich mir die Art des Denkens überhaupt nicht vorstellen.

    
Mutex 31.01.2015, 08:35
quelle

3 Antworten

10
%Vor%     
naser daneshi 31.01.2015, 09:35
quelle
1

Sie können dieses CTE verwenden:

%Vor%

um das folgende Ergebnis zu erzeugen:

%Vor%

Sie müssen jetzt nur noch eine laufende Summe von flag bis des ersten Vorkommens eines vorhergehenden Nullwerts berechnen :

%Vor%

OUTER APPLY berechnet den rn -Wert des ersten nullwertigen Flags, das vor der aktuellen Zeile steht. CROSS APPLY berechnet die Anzahl der Datensätze, die dem aktuellen Datensatz vorangehen bis das erste Vorkommen eines vorhergehenden nullwertigen Flags.

    
Giorgos Betsos 31.01.2015 09:20
quelle
0

Ich nehme diese Tabelle an:

%Vor%

Hier ist eine rekursive Lösung mit Erklärungen:

%Vor%

SQLFiddle

    
Lukas Eder 31.01.2015 09:12
quelle

Tags und Links