blob: ae2fa3a66f466703b4e06653d5cbba51e15cbc25 [file] [log] [blame]
buyingyicf48fb52012-11-02 00:31:31 +00001DROP TABLE IF EXISTS lineitem;
2DROP TABLE IF EXISTS orders;
3DROP TABLE IF EXISTS q12_shipping;
4
5-- create the tables and load the data
6create 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/lineitem';
7create 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/orders';
8
9-- create the result table
10create table q12_shipping(l_shipmode string, high_line_count double, low_line_count double);
11
buyingyicf48fb52012-11-02 00:31:31 +000012
13-- the query
14insert overwrite table q12_shipping
15select
16 l_shipmode,
17 sum(case
18 when o_orderpriority ='1-URGENT'
19 or o_orderpriority ='2-HIGH'
20 then 1
21 else 0
22end
23 ) as high_line_count,
24 sum(case
25 when o_orderpriority <> '1-URGENT'
26 and o_orderpriority <> '2-HIGH'
27 then 1
28 else 0
29end
30 ) as low_line_count
31from
32 orders o join lineitem l
33 on
34 o.o_orderkey = l.l_orderkey and l.l_commitdate < l.l_receiptdate
35and l.l_shipdate < l.l_commitdate and l.l_receiptdate >= '1994-01-01'
36and l.l_receiptdate < '1995-01-01'
37where
38 l.l_shipmode = 'MAIL' or l.l_shipmode = 'SHIP'
39group by l_shipmode
40order by l_shipmode;