暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

创建复合区域列表分区表

原创 fizz 2022-11-03
248
  • 陈述1

    该表是使用复合范围列表分区创建的。复合范围列表分区使用 range 方法对数据进行分区,并在每个分区内使用 list 方法对数据进行进一步子分区。范围分区使用sales_date列的值,列表子分区使用state_code列的值。例如,小于 2014 年 10 月 1 日且state_code值等于 CT 的sales_date值将存储在sales_q3_region_east_2014分区中。

    创建QUARTERLY_REGIONAL_SALES表

    CREATE TABLE quarterly_regional_sales ( 
        product_id       NUMBER(6), 
        customer_id      NUMBER, 
        channel_id       CHAR(1), 
        promo_id         NUMBER(6), 
        sale_date        DATE, 
        quantity_sold    INTEGER, 
        amount_sold      NUMBER(10,2), 
        store_name       VARCHAR(30), 
        state_code       VARCHAR(2) 
    ) 
     
      PARTITION BY RANGE (sale_date) 
      SUBPARTITION BY LIST (state_code) 
     
     (PARTITION sales_q1_2014 VALUES LESS THAN (TO_DATE('01-APR-2014','dd-MON-yyyy')) 
     
             (SUBPARTITION sales_q1_region_east_2014  
                 VALUES ('CT','MA','MD','ME','NH','NJ','NY','PA','VA'), 
               SUBPARTITION sales_q1_region_west_2014 
                 VALUES ('AZ','CA','CO','NM','NV','OR','UT','WA'), 
               SUBPARTITION sales_q1_region_south_2014 
                 VALUES ('AL','AR','GA','KY','LA','MS','TN','TX'), 
               SUBPARTITION sales_q1_region_central_2014 
                 VALUES ('IA','IL','KS','MI','MO','ND','OH','OK','SD'), 
               SUBPARTITION sales_q1_region_other_2014  
                 VALUES ('HI','PR'), 
               SUBPARTITION sales_q1_region_null_2014  
                 VALUES (NULL), 
               SUBPARTITION  
                 VALUES (DEFAULT) 
              ), 
     
      PARTITION sales_q2_2014 VALUES LESS THAN (TO_DATE('01-JUL-2014','dd-MON-yyyy')) 
     
             (SUBPARTITION sales_q2_region_east_2014  
                 VALUES ('CT','MA','MD','ME','NH','NJ','NY','PA','VA'), 
               SUBPARTITION sales_q2_region_west_2014 
                 VALUES ('AZ','CA','CO','NM','NV','OR','UT','WA'), 
               SUBPARTITION sales_q2_region_south_2014 
                 VALUES ('AL','AR','GA','KY','LA','MS','TN','TX'), 
               SUBPARTITION sales_q2_region_central_2014 
                 VALUES ('IA','IL','KS','MI','MO','ND','OH','OK','SD'), 
               SUBPARTITION sales_q2_region_other_2014  
                 VALUES ('HI','PR'), 
               SUBPARTITION sales_q2_region_null_2014  
                 VALUES (NULL), 
               SUBPARTITION  
                 VALUES (DEFAULT) 
              ), 
     
     
      PARTITION sales_q3_2014 VALUES LESS THAN (TO_DATE('01-OCT-2014','dd-MON-yyyy')) 
     
             (SUBPARTITION sales_q3_region_east_2014  
                 VALUES ('CT','MA','MD','ME','NH','NJ','NY','PA','VA'), 
               SUBPARTITION sales_q3_region_west_2014 
                 VALUES ('AZ','CA','CO','NM','NV','OR','UT','WA'), 
               SUBPARTITION sales_q3_region_south_2014 
                 VALUES ('AL','AR','GA','KY','LA','MS','TN','TX'), 
               SUBPARTITION sales_q3_region_central_2014 
                 VALUES ('IA','IL','KS','MI','MO','ND','OH','OK','SD'), 
               SUBPARTITION sales_q3_region_other_2014  
                 VALUES ('HI','PR'), 
               SUBPARTITION sales_q3_region_null_2014  
                 VALUES (NULL), 
               SUBPARTITION  
                 VALUES (DEFAULT) 
              ), 
     
     
      PARTITION sales_q4_2014 VALUES LESS THAN (TO_DATE('01-JAN-2015','dd-MON-yyyy')) 
     
             (SUBPARTITION sales_q4_region_east_2014  
                 VALUES ('CT','MA','MD','ME','NH','NJ','NY','PA','VA'), 
               SUBPARTITION sales_q4_region_west_2014 
                 VALUES ('AZ','CA','CO','NM','NV','OR','UT','WA'), 
               SUBPARTITION sales_q4_region_south_2014 
                 VALUES ('AL','AR','GA','KY','LA','MS','TN','TX'), 
               SUBPARTITION sales_q4_region_central_2014 
                 VALUES ('IA','IL','KS','MI','MO','ND','OH','OK','SD'), 
               SUBPARTITION sales_q4_region_other_2014  
                 VALUES ('HI','PR'), 
               SUBPARTITION sales_q4_region_null_2014  
                 VALUES (NULL), 
               SUBPARTITION  
                 VALUES (DEFAULT) 
              ), 
     
     
      PARTITION sales_q1_2015 VALUES LESS THAN (TO_DATE('01-APR-2015','dd-MON-yyyy')) 
     
             (SUBPARTITION sales_q1_region_east_2015  
                 VALUES ('CT','MA','MD','ME','NH','NJ','NY','PA','VA'), 
               SUBPARTITION sales_q1_region_west_2015 
                 VALUES ('AZ','CA','CO','NM','NV','OR','UT','WA'), 
               SUBPARTITION sales_q1_region_south_2015 
                 VALUES ('AL','AR','GA','KY','LA','MS','TN','TX'), 
               SUBPARTITION sales_q1_region_central_2015 
                 VALUES ('IA','IL','KS','MI','MO','ND','OH','OK','SD'), 
               SUBPARTITION sales_q1_region_other_2015  
                 VALUES ('HI','PR'), 
               SUBPARTITION sales_q1_region_null_2015 
                 VALUES (NULL), 
               SUBPARTITION  
                 VALUES (DEFAULT) 
              ) 
     
     
    )

    已创建表。

  • 陈述2

    使用此 SQL 查询显示表中的分区。

    SELECT TABLE_NAME,PARTITION_NAME, PARTITION_POSITION, HIGH_VALUE FROM USER_TAB_PARTITIONS WHERE TABLE_NAME ='QUARTERLY_REGIONAL_SALES'

    TABLE_NAMEPARTITION_NAMEPARTITION_POSITIONHIGH_VALUE
    QUARTERLY_REGIONAL_SALESSALES_Q1_20141TO_DATE(' 2014-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
    QUARTERLY_REGIONAL_SALESSALES_Q2_20142TO_DATE(' 2014-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
    QUARTERLY_REGIONAL_SALESSALES_Q3_20143TO_DATE(' 2014-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
    QUARTERLY_REGIONAL_SALESSALES_Q4_20144TO_DATE(' 2015-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
    QUARTERLY_REGIONAL_SALESSALES_Q1_20155TO_DATE(' 2015-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')

    已选择 5 行。
  • 陈述3

    在表中插入值。

    INSERT INTO quarterly_regional_sales VALUES (1001,100,'A',150,'10-FEB-2014',500,2000,'My Store MA','MA')

    插入了 1 行。

  • 陈述4

    在表中插入值。

    INSERT INTO quarterly_regional_sales VALUES (1002,110,'B',180,'15-JUN-2014',100,1000,'My Store OK','OK')

    插入了 1 行。

  • 陈述5

    在表中插入值。

    INSERT INTO quarterly_regional_sales VALUES (1001,100,'A',150,'20-AUG-2014',500,2000,'My Store MA','MA')

    插入了 1 行。

  • 陈述6

    在表中插入值。

    INSERT INTO quarterly_regional_sales VALUES (1002,110,'B',180,'15-SEP-2014',100,1000,'My Store OK','OK')

    插入了 1 行。

  • 陈述7

    显示表中的所有数据。

    SELECT * FROM quarterly_regional_sales

    PRODUCT_IDCUSTOMER_IDCHANNEL_IDPROMO_IDSALE_DATEQUANTITY_SOLDAMOUNT_SOLDSTORE_NAMESTATE_CODE
    1001100一个15010-二月-145002000我的商店 MA
    1002110B18015-6月-141001000我的商店确定还行
    1001100一个15020-八月-145002000我的商店 MA
    1002110B18015-九月-141001000我的商店确定还行

    已选择 4 行。
  • 陈述8

    显示表中指定分区的数据。

    SELECT * FROM quarterly_regional_sales PARTITION(sales_q3_2014)

    PRODUCT_IDCUSTOMER_IDCHANNEL_IDPROMO_IDSALE_DATEQUANTITY_SOLDAMOUNT_SOLDSTORE_NAMESTATE_CODE
    1001100一个15020-八月-145002000我的商店 MA
    1002110B18015-九月-141001000我的商店确定还行

    选中 2 行。
  • 陈述9

    显示表中指定子分区的数据。完成示例测试后,可以通过删除表(DROP TABLE quarterly_regional_sales)来清理环境。

    SELECT * FROM quarterly_regional_sales SUBPARTITION(sales_q3_region_east_2014)

    PRODUCT_IDCUSTOMER_IDCHANNEL_IDPROMO_IDSALE_DATEQUANTITY_SOLDAMOUNT_SOLDSTORE_NAMESTATE_CODE
    1001100一个15020-八月-145002000我的商店 MA
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论