Zum Hauptinhalt springen
Übersetzte Seite

Diese Seite wurde mit KI-Unterstützung aus dem Englischen übersetzt. Bei Abweichungen ist die englische Version maßgeblich.

NTH_VALUE

Gibt den Wert des Ausdrucks zurück, der für die N-te Zeile im Fensterrahmen ausgewertet wird.

Diese eingebaute Fensterfunktion berechnet den Fensterrahmen für jede Zeile auf dieselbe Weise wie eine Aggregat-Fensterfunktion. Sie gibt den Wert des Ausdrucks zurück, der für die Zeile N des Fensterrahmens ausgewertet wird. Die Zeilen werden innerhalb des Fensterrahmens beginnend bei 1 nummeriert, in der Reihenfolge, die durch die ORDER BY-Klausel festgelegt ist, falls vorhanden, andernfalls in beliebiger Reihenfolge. Gibt es keine N-te Zeile in der Partition, wird NULL zurückgegeben.

Siehe auch: [SELECT] [FIRST_VALUE] [LAST_VALUE]


Syntax​

SELECT NTH_VALUE(expr, N) OVER (
[PARTITION BY column]
ORDER BY column
[ROWS BETWEEN frame_start AND frame_end]
) FROM <multipartIdentifier>;

Argumente​

expr Der Ausdruck, der für die N-te Zeile im Fensterrahmen ausgewertet wird.

N Eine positive Ganzzahl, die angibt, welche Zeilennummer abgerufen wird (Zählung beginnt bei 1).

PARTITION BY column Optional. Teilt die Ergebnismenge in Partitionen auf. Die Funktion NTH_VALUE wird innerhalb jeder Partition separat angewendet.

ORDER BY column Legt die Reihenfolge fest, in der die Zeilen verarbeitet werden.

ROWS BETWEEN frame_start AND frame_end Optional. Definiert den Fensterrahmen.

Rückgabewert(e)​

Gibt den Wert des Ausdrucks zurück, der für die N-te Zeile im Fensterrahmen ausgewertet wird, oder NULL, wenn die N-te Zeile nicht existiert.


Beispiele​

Den zweitplatzierten Mitwirkenden ermitteln​

-- Get the top 3 contributors by name for comparison
SELECT
login,
contributions,
NTH_VALUE(login, 1) OVER (ORDER BY contributions DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as top_contributor,
NTH_VALUE(login, 2) OVER (ORDER BY contributions DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as second_contributor,
NTH_VALUE(login, 3) OVER (ORDER BY contributions DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as third_contributor
FROM github.repos.contributors
WHERE owner = 'stackql'
AND repo = 'stackql';

Weitere Informationen finden Sie unter https://sqlite.org/windowfunctions.html#built-in_window_functions.