blob: 72d8b69df21d1b036aeb1370e704bfd7849355bb [file] [log] [blame]
buyingyicf48fb52012-11-02 00:31:31 +00001-- create the tables and load the data
2create 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/100/part';
3create 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/100/customer';
4Create 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/100/lineitem';
5create 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/100/orders';
6create 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/100/supplier';
7create 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/100/nation';
8create external table region (R_REGIONKEY INT, R_NAME STRING, R_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/100/region';
9
10-- create the result table
11create table q8_national_market_share(o_year string, mkt_share double);
12
13-- the query
14insert overwrite table q8_national_market_share
15select
16 o_year, sum(case when nation = 'BRAZIL' then volume else 0.0 end) / sum(volume) as mkt_share
17from
18 (
19select
20 year(o_orderdate) as o_year, l_extendedprice * (1-l_discount) as volume,
21 n2.n_name as nation
22 from
23 nation n2 join
24 (select o_orderdate, l_discount, l_extendedprice, s_nationkey
25 from supplier s join
26 (select o_orderdate, l_discount, l_extendedprice, l_suppkey
27 from part p join
28 (select o_orderdate, l_partkey, l_discount, l_extendedprice, l_suppkey
29 from lineitem l join
30 (select o_orderdate, o_orderkey
31 from orders o join
32 (select c.c_custkey
33 from customer c join
34 (select n1.n_nationkey
35 from nation n1 join region r
36 on n1.n_regionkey = r.r_regionkey and r.r_name = 'AMERICA'
37 ) n11 on c.c_nationkey = n11.n_nationkey
38 ) c1 on c1.c_custkey = o.o_custkey
39 ) o1 on l.l_orderkey = o1.o_orderkey and o1.o_orderdate >= '1995-01-01'
40 and o1.o_orderdate < '1996-12-31'
41 ) l1 on p.p_partkey = l1.l_partkey and p.p_type = 'ECONOMY ANODIZED STEEL'
42 ) p1 on s.s_suppkey = p1.l_suppkey
43 ) s1 on s1.s_nationkey = n2.n_nationkey
44 ) all_nation
45group by o_year
46order by o_year;
47
48DROP TABLE customer;
49DROP TABLE orders;
50DROP TABLE lineitem;
51DROP TABLE supplier;
52DROP TABLE nation;
53DROP TABLE region;
54DROP TABLE part;
55DROP TABLE q8_national_market_share;