4109: Fensterfunktionen können im Kontext einer anderen Funktion oder eines anderen Aggregats
Fehlermeldung:
Meldung 4109, Ebene 15, Status 1, Zeile 1
Fensterfunktionen können im Kontext einer anderen Funktion oder eines anderen Aggregats nicht verwendet werden.
Ebene:
15.
Beschreibung:
Diese Fehlermeldung erscheint, wenn man versucht eine Fensterfunktion innerhalb einer anderen Funktion oder Aggregatfunktion zu verwenden.
Auswirkungen:
Das SQL Statement kann zwar geparst werden, jedoch zur Laufzeit wird der Fehler ausgelöst.
Behebung:
Fehler der Ebene 15 sind Fehler, die vom Anwender hervorgerufen werden. Sie können und müssen vom Anwender korrigiert werden. Das Statement kann so nicht ausgeführt werden. Fensterfunktionen können nicht innerhalb anderer (Aggregat)funktionen verwendet werden.
Versionen:
Diese Fehlermeldung wurde mit SQL Server 2005 eingeführt.
Beispiele:
USE tempdb;
GO
IF OBJECT_ID('tempdb..#t') > 0
DROP TABLE #t
GO
CREATE TABLE #t
(
id INT
)
INSERT INTO #t SELECT 10
GO
SELECT SUM(ROW_NUMBER() OVER(ORDER BY ID)) AS rid, id
FROM #t
GROUP BY id
Anmerkungen:
Im obigen Beispiel wird versucht die ROW_NUMBER() Fensterfunktion innerhalb der SUM() Aggregatfunktion zu verwenden. Dies löst den Fehler aus.