En beregnet kolonne betyder normalt en værdi, du kan beregne pr. række. MySQL understøtter det ikke, men det gør SQL Server. For eksempel for at gemme summen af to kolonner permanent:
create table Table1 (a int, b int, c as a+b persisted)
Du ønsker dog at gemme et aggregat, det vil sige en værdi for en gruppe rækker. MySQL og SQL Server understøtter ikke materialiserede visninger med et aggregat, men Oracle gør:
create table Table1 (a int, b int);
create materialized view View1 as
select a
, count(*) as Cnt
from Table1
group by
a;
Men med MySQL er det tætteste du kan gøre et cronjob, der med jævne mellemrum udfylder en tabel:
truncate table Table1Summary;
insert Table1Summary (a, Cnt) select a, count(*) from Table1;
Du kan forespørge i tabellen som en materialiseret visning; det vil være lige så hurtigt, men det er ikke garanteret at være opdateret.