Questi aggregati non sono consentiti perché non possono essere ricalcolati esclusivamente in base ai valori modificati.
Alcuni aggregati, come COUNT_BIG()
o SUM()
, può essere ricalcolato semplicemente osservando i dati che sono cambiati. Questi sono consentiti all'interno di una vista indicizzata perché, se un valore sottostante cambia, l'impatto di tale modifica può essere calcolato direttamente.
Altri aggregati, come MIN()
e MAX()
, non può essere ricalcolato semplicemente guardando i dati che vengono modificati. Se elimini il valore che è attualmente il massimo o il minimo, il nuovo massimo o minimo deve essere cercato e trovato nell'intero tavolo.
Lo stesso principio si applica ad altri aggregati, come AVG()
o gli aggregati di variazione standard. SQL non può ricalcolarli solo dai valori modificati, ma deve eseguire nuovamente la scansione dell'intera tabella per ottenere il nuovo valore.