oracle model的使用

  1. CREATE TABLE MODEL_TEST  
  2. (  
  3.   DOMAINS      VARCHAR2(20),  
  4.   NAME         VARCHAR2(20),  
  5.   YEAR         NUMBER,  
  6.   INPUTS       NUMBER,  
  7.   INCREAMENTS  NUMBER  
  8. )  
  9. insert into MODEL_TEST (DOMAINS, NAME, YEAR, INPUTS, INCREAMENTS)  
  10. values ('chchina', 'apple', 2000, 100, 150);  
  11. insert into MODEL_TEST (DOMAINS, NAME, YEAR, INPUTS, INCREAMENTS)  
  12. values ('chchina', 'banana', 2001, 200, 250);  
  13. insert into MODEL_TEST (DOMAINS, NAME, YEAR, INPUTS, INCREAMENTS)  
  14. values ('chchina', 'orange', 2002, 300, 450);  
  15. insert into MODEL_TEST (DOMAINS, NAME, YEAR, INPUTS, INCREAMENTS)  
  16. values ('hongkong', 'apple', 2000, 100, 150);  
  17. insert into MODEL_TEST (DOMAINS, NAME, YEAR, INPUTS, INCREAMENTS)  
  18. values ('hongkng', 'banana', 2001, 200, 250);  
  19. insert into MODEL_TEST (DOMAINS, NAME, YEAR, INPUTS, INCREAMENTS)  
  20. values ('hongkong', 'orange', 2002, 300, 450);  


select domains,

       name,
       year,
       inputs,
       increaments,
       total 
  from modeL_test t1
  model return updated rows
  partition by (domains,name)
  dimension by (year)
  measures (0 total,inputs,increaments)
  rules automatic order (
    total [year] = nvl(total [cv(year)-1],0)+ inputs[cv(year)]+increaments[cv(year)]
  )

你可能感兴趣的:(oracle)