sql >> Database teknologi >  >> RDS >> Sqlserver

Hvorfor kan indekserede visninger ikke have et MAX()-aggregat?

Disse aggregater er ikke tilladt, fordi de ikke kan genberegnes udelukkende baseret på de ændrede værdier.

Nogle aggregater, såsom COUNT_BIG() eller SUM() , kan genberegnes ved blot at se på de data, der ændrede sig. Disse er tilladt i en indekseret visning, fordi, hvis en underliggende værdi ændres, kan virkningen af ​​denne ændring beregnes direkte.

Andre aggregater, såsom MIN() og MAX() , kan ikke genberegnes ved blot at se på de data, der bliver ændret. Hvis du sletter den værdi, der i øjeblikket er maks. eller min., skal den nye maks. eller min. søges efter og findes i hele bord.

Det samme princip gælder for andre aggregater, såsom AVG() eller standardvariationsaggregaterne. SQL kan ikke genberegne dem kun ud fra de ændrede værdier, men skal genscanne hele tabellen for at få den nye værdi.



  1. Salesforce SOQL fra Microsoft Office

  2. Konverter amerikansk datoformat til ANSI SQL-datoformat (ÅÅÅÅ-mm-dd)

  3. Find lignende talmønstre i tabel

  4. Hvordan vælger jeg alle kolonner i sql undtagen én kolonne?