buyingyi | cf48fb5 | 2012-11-02 00:31:31 +0000 | [diff] [blame] | 1 | DROP TABLE customer; |
| 2 | DROP TABLE orders; |
| 3 | DROP TABLE lineitem; |
| 4 | DROP TABLE supplier; |
| 5 | DROP TABLE nation; |
| 6 | DROP TABLE region; |
| 7 | DROP TABLE part; |
| 8 | DROP TABLE q8_national_market_share; |
| 9 | |
| 10 | -- create the tables and load the data |
| 11 | create external table part (P_PARTKEY INT, P_NAME STRING, P_MFGR STRING, P_BRAND STRING, P_TYPE STRING, P_SIZE INT, P_CONTAINER STRING, P_RETAILPRICE DOUBLE, P_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/10/part'; |
| 12 | create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/10/customer'; |
| 13 | Create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/10/lineitem'; |
| 14 | create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/10/orders'; |
| 15 | create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/10/supplier'; |
| 16 | create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/10/nation'; |
| 17 | create external table region (R_REGIONKEY INT, R_NAME STRING, R_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/10/region'; |
| 18 | |
| 19 | -- create the result table |
| 20 | create table q8_national_market_share(o_year string, mkt_share double); |
| 21 | |
| 22 | -- the query |
| 23 | insert overwrite table q8_national_market_share |
| 24 | select |
| 25 | o_year, sum(case when nation = 'BRAZIL' then volume else 0.0 end) / sum(volume) as mkt_share |
| 26 | from |
| 27 | ( |
| 28 | select |
| 29 | year(o_orderdate) as o_year, l_extendedprice * (1-l_discount) as volume, |
| 30 | n2.n_name as nation |
| 31 | from |
| 32 | nation n2 join |
| 33 | (select o_orderdate, l_discount, l_extendedprice, s_nationkey |
| 34 | from supplier s join |
| 35 | (select o_orderdate, l_discount, l_extendedprice, l_suppkey |
| 36 | from part p join |
| 37 | (select o_orderdate, l_partkey, l_discount, l_extendedprice, l_suppkey |
| 38 | from lineitem l join |
| 39 | (select o_orderdate, o_orderkey |
| 40 | from orders o join |
| 41 | (select c.c_custkey |
| 42 | from customer c join |
| 43 | (select n1.n_nationkey |
| 44 | from nation n1 join region r |
| 45 | on n1.n_regionkey = r.r_regionkey and r.r_name = 'AMERICA' |
| 46 | ) n11 on c.c_nationkey = n11.n_nationkey |
| 47 | ) c1 on c1.c_custkey = o.o_custkey |
| 48 | ) o1 on l.l_orderkey = o1.o_orderkey and o1.o_orderdate >= '1995-01-01' |
| 49 | and o1.o_orderdate < '1996-12-31' |
| 50 | ) l1 on p.p_partkey = l1.l_partkey and p.p_type = 'ECONOMY ANODIZED STEEL' |
| 51 | ) p1 on s.s_suppkey = p1.l_suppkey |
| 52 | ) s1 on s1.s_nationkey = n2.n_nationkey |
| 53 | ) all_nation |
| 54 | group by o_year |
| 55 | order by o_year; |
| 56 | |