drop table IF EXISTS supplier;
drop table IF EXISTS result;

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/supplier';

create table result (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT);

insert overwrite table result select s_suppkey, s_name, s_address, s_nationkey
from supplier where S_SUPPKEY*2 < 20;

select result.s_suppkey, supplier.s_phone, supplier.s_acctbal,
supplier.s_comment from result join supplier on result.s_suppkey=supplier.s_suppkey;
