陈述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_NAME PARTITION_NAME PARTITION_POSITION HIGH_VALUE QUARTERLY_REGIONAL_SALES SALES_Q1_2014 1 TO_DATE(' 2014-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN') QUARTERLY_REGIONAL_SALES SALES_Q2_2014 2 TO_DATE(' 2014-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN') QUARTERLY_REGIONAL_SALES SALES_Q3_2014 3 TO_DATE(' 2014-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN') QUARTERLY_REGIONAL_SALES SALES_Q4_2014 4 TO_DATE(' 2015-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN') QUARTERLY_REGIONAL_SALES SALES_Q1_2015 5 TO_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_salesPRODUCT_ID CUSTOMER_ID CHANNEL_ID PROMO_ID SALE_DATE QUANTITY_SOLD AMOUNT_SOLD STORE_NAME STATE_CODE 1001 100 一个 150 10-二月-14 500 2000 我的商店 MA 马 1002 110 B 180 15-6月-14 100 1000 我的商店确定 还行 1001 100 一个 150 20-八月-14 500 2000 我的商店 MA 马 1002 110 B 180 15-九月-14 100 1000 我的商店确定 还行
已选择 4 行。陈述8
显示表中指定分区的数据。
SELECT * FROM quarterly_regional_sales PARTITION(sales_q3_2014)PRODUCT_ID CUSTOMER_ID CHANNEL_ID PROMO_ID SALE_DATE QUANTITY_SOLD AMOUNT_SOLD STORE_NAME STATE_CODE 1001 100 一个 150 20-八月-14 500 2000 我的商店 MA 马 1002 110 B 180 15-九月-14 100 1000 我的商店确定 还行
选中 2 行。陈述9
显示表中指定子分区的数据。完成示例测试后,可以通过删除表(DROP TABLE quarterly_regional_sales)来清理环境。
SELECT * FROM quarterly_regional_sales SUBPARTITION(sales_q3_region_east_2014)PRODUCT_ID CUSTOMER_ID CHANNEL_ID PROMO_ID SALE_DATE QUANTITY_SOLD AMOUNT_SOLD STORE_NAME STATE_CODE 1001 100 一个 150 20-八月-14 500 2000 我的商店 MA 马
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




