create table ǰ
as
select rownum ǰID, dbms_random.string('u', 10) ǰ
from   dual connect by level <= 10;

create table 
as
select rownum ID, dbms_random.string('a', 10) 
from   dual connect by level <= 100;

create table Ǹ
as
select ǰID, ID, ǸϷùȣ
     , to_char(to_date('20081231', 'yyyymmdd')+ ǰID, 'yyyymmdd') Ǹ
     , round(dbms_random.value(1, 100)) Ǹż
     , round(dbms_random.value(1000, 100000), -2) Ǹűݾ
from  ǰ, , (select rownum ǸϷùȣ from dual connect by level <= 100);

create materialized view log on Ǹ 
with sequence, rowid(ǰID, ID, Ǹ, Ǹż, Ǹűݾ) 
including new values;

create materialized view ǰ_MV
build immediate          -- ٷ MV   
refresh fast on commit   -- Ŀ  MV ǽð ݿ
enable query rewrite     -- query rewrite Ȱȭ 
as
select ǰID, ID, substr(Ǹ, 1, 6) Ǹſ
     , sum(Ǹż) Ǹż, sum(Ǹűݾ) Ǹűݾ
from   Ǹ
group by ǰID, ID, substr(Ǹ, 1, 6);

select p.ǰ, c., substr(s.Ǹ, 1, 6) Ǹſ
     , sum(s.Ǹż) Ǹż, sum(s.Ǹűݾ) Ǹűݾ
from   Ǹ s, ǰ p,  c
where  s.ǰID = p.ǰID
and    s.ID = c.ID
group by p.ǰ, c., substr(s.Ǹ, 1, 6);

select /*+ no_rewrite */ p.ǰ, c., substr(s.Ǹ, 1, 6) Ǹſ
     , sum(s.Ǹż) Ǹż, sum(s.Ǹűݾ) Ǹűݾ
from   Ǹ s, ǰ p,  c
where  s.ǰID = p.ǰID
and    s.ID = c.ID
group by p.ǰ, c., substr(s.Ǹ, 1, 6);



