Een berekende kolom betekent normaal gesproken een waarde die u per rij kunt berekenen. MySQL ondersteunt dat niet, maar SQL Server wel. Om bijvoorbeeld de som van twee kolommen permanent op te slaan:
create table Table1 (a int, b int, c as a+b persisted)
U wilt echter een aggregaat opslaan, dat wil zeggen een waarde voor een groep rijen. MySQL en SQL Server ondersteunen geen gematerialiseerde weergaven met een aggregaat, maar Oracle wel:
create table Table1 (a int, b int);
create materialized view View1 as
select a
, count(*) as Cnt
from Table1
group by
a;
Met MySQL kun je echter het beste een cronjob doen die periodiek een tabel vult:
truncate table Table1Summary;
insert Table1Summary (a, Cnt) select a, count(*) from Table1;
U kunt de tabel opvragen als een gematerialiseerde weergave; het zal even snel zijn, maar niet gegarandeerd up-to-date zijn.