blob: 854636586ef2b775f765b74b179794aae1a05365 [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-- the query
13insert overwrite table q12_shipping
14select
15 l_shipmode,
16 sum(case
17 when o_orderpriority ='1-URGENT'
18 or o_orderpriority ='2-HIGH'
19 then 1
20 else 0
21end
22 ) as high_line_count,
23 sum(case
24 when o_orderpriority <> '1-URGENT'
25 and o_orderpriority <> '2-HIGH'
26 then 1
27 else 0
28end
29 ) as low_line_count
30from
31 orders o join lineitem l
32 on
33 o.o_orderkey = l.l_orderkey and l.l_commitdate < l.l_receiptdate
34and l.l_shipdate < l.l_commitdate and l.l_receiptdate >= '1994-01-01'
35and l.l_receiptdate < '1995-01-01'
36where
37 l.l_shipmode = 'MAIL' or l.l_shipmode = 'SHIP'
38group by l_shipmode
39order by l_shipmode;