Diese Aggregate sind nicht zulässig, da sie nicht allein aufgrund der geänderten Werte neu berechnet werden können.
Einige Aggregate, wie COUNT_BIG()
oder SUM()
, können einfach neu berechnet werden, indem man sich die geänderten Daten anschaut. Diese sind in einer indizierten Sicht zulässig, da sich die Auswirkung dieser Änderung direkt berechnen lässt, wenn sich ein zugrunde liegender Wert ändert.
Andere Aggregate, wie MIN()
und MAX()
, können nicht neu berechnet werden, indem nur die Daten betrachtet werden, die gerade geändert werden. Wenn Sie den Wert löschen, der aktuell der Höchstwert oder der Mindestwert ist, muss der neue Höchstwert oder Mindestwert gesucht und in der Tabelle gesamt gefunden werden.
Das gleiche Prinzip gilt für andere Aggregate, wie AVG()
oder die Standardvariationsaggregate. SQL kann sie nicht nur anhand der geänderten Werte neu berechnen, sondern muss die gesamte Tabelle erneut durchsuchen, um den neuen Wert zu erhalten.
Hah, du hast es geschafft! –
Sie könnten unterstützt werden, wenn Sie die Tabelle so beschränken, dass nur 'insert'-Operationen erlaubt werden, nicht' update' oder 'delete'. (Wenn Sie eine dieser Einstellungen verwenden möchten, müssen Sie die indizierte Sicht löschen und anschließend neu erstellen.) Viele Tabellen sind nur für den praktischen Einsatz insert-fähig und würden von einer Möglichkeit profitieren, "max" und "max" zu beschleunigen 'min' Anfragen. –