create table sales_by_region_by_quarter
     (state_cd          char(2),
      sales_dt          date,
      sales_amt         number(16,2))
partition by range (sales_dt)
    subpartition by list (state_cd)
     (partition q1_2004 values less than (to_date('20040401','YYYYMMDD'))
      (subpartition q1_2004_midwest values ('LO','ZP','MA','WI','KP')
          tablespace prd01,
      subpartition q1_2004_westcoast values ('LU','DS','OP')
          tablespace prd02,
      subpartition q1_2004_other_states values (default)
          tablespace prd03
),
partition q2_2004 values less than (to_date('20040701','YYYYMMDD'))
    (subpartition q2_2004_midwest values ('LO','ZP','MA','WI','KP')
          tablespace prd01,
    subpartition q2_2004_westcoast values ('LU','DS','OP')
          tablespace prd02,
    subpartition q2_2004_other_states values (default)
          tablespace prd03
),
partition q3_2004 values less than (to_date('20041001','YYYYMMDD'))
    (subpartition q3_2004_midwest values ('LO','ZP','MA','WI','KP')
          tablespace prd01,
     subpartition q3_2004_westcoast values ('LU','DS','OP')
          tablespace prd02,
     subpartition q3_2004_other_states values (default)
          tablespace prd03
),
partition q4_2004 values less than (maxvalue)
    (subpartition q4_2004_midwest values ('LO','ZP','MA','WI','KP')
          tablespace prd01,
     subpartition q4_2004_westcoast values ('LU','DS','OP')
          tablespace prd02,
     subpartition q4_2004_other_states values (default)
          tablespace prd03
)
);