USE tpch1; drop table if exists qa_nation; drop table if exists qa_customer; drop table if exists qa_region; drop table if exists qa_orders; create table qa_nation (n_id int, n_name char(20), regionid int) engine=columnstore; create table qa_customer (c_id int, c_custname char(20), nationid int) engine=columnstore; create table qa_region (r_id int, r_name char(20)) engine=columnstore; create table qa_orders (o_id int, o_name char(20), custid int) engine=columnstore; insert into qa_region values (1, 'ASIA'), (2, 'AMERICA'), (3, 'EUROPE'); insert into qa_nation values (1, 'UNITED STATES', 2), (2, 'CANADA', 2), (3, 'JAPAN', 1), (4, 'CHINA', 1), (5, 'GERMANY', 3), (6, 'ITALY', 3); insert into qa_customer values (1, 'Cust_US', 1), (2, 'Cust_Japan', 3), (3, 'Cust_Italy', 6); insert into qa_orders values (1, 'Order_US#1', 1), (2, 'Order_US#2', 1), (3, 'Order_Japan#1', 2); select n.n_name, c.c_custname from qa_nation n join qa_customer c on n.n_id = c.nationid where n.n_id in (select n2.n_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) order by n.n_name; n_name c_custname ITALY Cust_Italy JAPAN Cust_Japan UNITED STATES Cust_US select n.n_name, c.c_custname from qa_nation n join qa_customer c on n.n_id = c.nationid where n.n_id in (select n2.n_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id and r1.r_name = 'AMERICA') order by n.n_name; n_name c_custname UNITED STATES Cust_US select n.n_name, count(c.c_id) from qa_nation n join qa_customer c on n.n_id = c.nationid where n.n_id in (select n2.n_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) group by n.n_name order by n.n_name; n_name count(c.c_id) ITALY 1 JAPAN 1 UNITED STATES 1 select n.n_name, c.c_custname from qa_nation n left join qa_customer c on n.n_id = c.nationid where n.n_id in (select n2.n_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) order by n.n_name; n_name c_custname CANADA NULL CHINA NULL GERMANY NULL ITALY Cust_Italy JAPAN Cust_Japan UNITED STATES Cust_US select n.n_name, c.c_custname from qa_nation n left outer join qa_customer c on n.n_id = c.nationid where n.n_id in (select n2.n_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) order by n.n_name; n_name c_custname CANADA NULL CHINA NULL GERMANY NULL ITALY Cust_Italy JAPAN Cust_Japan UNITED STATES Cust_US select n.n_name, count(c.c_id) from qa_nation n left outer join qa_customer c on n.n_id = c.nationid where n.n_id in (select n2.n_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) group by n.n_name order by n.n_name; n_name count(c.c_id) CANADA 0 CHINA 0 GERMANY 0 ITALY 1 JAPAN 1 UNITED STATES 1 select r.r_name, n.n_name, c.c_custname from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid where n.n_id in (select n2.n_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) order by r.r_name, n.n_name; r_name n_name c_custname AMERICA UNITED STATES Cust_US ASIA JAPAN Cust_Japan EUROPE ITALY Cust_Italy select r.r_name, n.n_name, c.c_custname from qa_region r join qa_nation n on r.r_id = n.regionid left join qa_customer c on n.n_id = c.nationid where n.n_id in (select n2.n_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) order by r.r_name, n.n_name; r_name n_name c_custname AMERICA CANADA NULL AMERICA UNITED STATES Cust_US ASIA CHINA NULL ASIA JAPAN Cust_Japan EUROPE GERMANY NULL EUROPE ITALY Cust_Italy select r.r_name, n.n_name, c.c_custname from qa_region r join qa_nation n on r.r_id = n.regionid left outer join qa_customer c on n.n_id = c.nationid where n.n_id in (select n2.n_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) order by r.r_name, n.n_name; r_name n_name c_custname AMERICA CANADA NULL AMERICA UNITED STATES Cust_US ASIA CHINA NULL ASIA JAPAN Cust_Japan EUROPE GERMANY NULL EUROPE ITALY Cust_Italy select r.r_name, n.n_name, c.c_custname from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid where n.n_id in (select n2.n_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id and r1.r_name = 'AMERICA') order by r.r_name, n.n_name; r_name n_name c_custname AMERICA UNITED STATES Cust_US select r.r_name, n.n_name, c.c_custname from qa_region r join qa_nation n on r.r_id = n.regionid left join qa_customer c on n.n_id = c.nationid where n.n_id in (select n2.n_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id and r1.r_name = 'AMERICA') order by r.r_name, n.n_name; r_name n_name c_custname AMERICA CANADA NULL AMERICA UNITED STATES Cust_US select r.r_name, n.n_name, c.c_custname from qa_region r join qa_nation n on r.r_id = n.regionid left outer join qa_customer c on n.n_id = c.nationid where n.n_id in (select n2.n_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id and r1.r_name = 'AMERICA') order by r.r_name, n.n_name; r_name n_name c_custname AMERICA CANADA NULL AMERICA UNITED STATES Cust_US select r.r_name, n.n_name, c.c_custname from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid where r.r_id in (select r1.r_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) order by r.r_name, n.n_name; r_name n_name c_custname AMERICA UNITED STATES Cust_US ASIA JAPAN Cust_Japan EUROPE ITALY Cust_Italy select r.r_name, n.n_name, c.c_custname from qa_region r join qa_nation n on r.r_id = n.regionid left join qa_customer c on n.n_id = c.nationid where r.r_id in (select r1.r_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) order by r.r_name, n.n_name; r_name n_name c_custname AMERICA CANADA NULL AMERICA UNITED STATES Cust_US ASIA CHINA NULL ASIA JAPAN Cust_Japan EUROPE GERMANY NULL EUROPE ITALY Cust_Italy select r.r_name, n.n_name, c.c_custname from qa_region r join qa_nation n on r.r_id = n.regionid left outer join qa_customer c on n.n_id = c.nationid where r.r_id in (select r1.r_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) order by r.r_name, n.n_name; r_name n_name c_custname AMERICA CANADA NULL AMERICA UNITED STATES Cust_US ASIA CHINA NULL ASIA JAPAN Cust_Japan EUROPE GERMANY NULL EUROPE ITALY Cust_Italy select r.r_name, n.n_name, c.c_custname from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid where r.r_id in (select r1.r_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id and n2.n_name = 'UNITED STATES') order by r.r_name, n.n_name; r_name n_name c_custname AMERICA UNITED STATES Cust_US select r.r_name, n.n_name, c.c_custname from qa_region r join qa_nation n on r.r_id = n.regionid left join qa_customer c on n.n_id = c.nationid where r.r_id in (select r1.r_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id and n2.n_name = 'UNITED STATES') order by r.r_name, n.n_name; r_name n_name c_custname AMERICA CANADA NULL AMERICA UNITED STATES Cust_US select r.r_name, n.n_name, c.c_custname from qa_region r join qa_nation n on r.r_id = n.regionid left outer join qa_customer c on n.n_id = c.nationid where r.r_id in (select r1.r_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id and n2.n_name = 'UNITED STATES') order by r.r_name, n.n_name; r_name n_name c_custname AMERICA CANADA NULL AMERICA UNITED STATES Cust_US select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid join qa_orders o on c.c_id = o.custid where n.n_id in (select n2.n_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 ASIA JAPAN Cust_Japan Order_Japan#1 select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid left join qa_orders o on c.c_id = o.custid where n.n_id in (select n2.n_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 ASIA JAPAN Cust_Japan Order_Japan#1 EUROPE ITALY Cust_Italy NULL select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid left outer join qa_orders o on c.c_id = o.custid where n.n_id in (select n2.n_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 ASIA JAPAN Cust_Japan Order_Japan#1 EUROPE ITALY Cust_Italy NULL select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid join qa_orders o on c.c_id = o.custid where n.n_id in (select n2.n_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id and r1.r_name = 'AMERICA') order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid left join qa_orders o on c.c_id = o.custid where n.n_id in (select n2.n_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id and r1.r_name = 'AMERICA') order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid left outer join qa_orders o on c.c_id = o.custid where n.n_id in (select n2.n_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id and r1.r_name = 'AMERICA') order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid join qa_orders o on c.c_id = o.custid where r.r_id in (select r1.r_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 ASIA JAPAN Cust_Japan Order_Japan#1 select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid left join qa_orders o on c.c_id = o.custid where r.r_id in (select r1.r_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 ASIA JAPAN Cust_Japan Order_Japan#1 EUROPE ITALY Cust_Italy NULL select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid left outer join qa_orders o on c.c_id = o.custid where r.r_id in (select r1.r_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 ASIA JAPAN Cust_Japan Order_Japan#1 EUROPE ITALY Cust_Italy NULL select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid join qa_orders o on c.c_id = o.custid where r.r_id in (select r1.r_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id and n2.n_name = 'UNITED STATES') order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid left join qa_orders o on c.c_id = o.custid where r.r_id in (select r1.r_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id and n2.n_name = 'UNITED STATES') order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid left outer join qa_orders o on c.c_id = o.custid where r.r_id in (select r1.r_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id and n2.n_name = 'UNITED STATES') order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid join qa_orders o on c.c_id = o.custid where r.r_id in (select r1.r_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 ASIA JAPAN Cust_Japan Order_Japan#1 select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid left join qa_orders o on c.c_id = o.custid where r.r_id in (select r1.r_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 ASIA JAPAN Cust_Japan Order_Japan#1 EUROPE ITALY Cust_Italy NULL select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid left outer join qa_orders o on c.c_id = o.custid where r.r_id in (select r1.r_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id) order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 ASIA JAPAN Cust_Japan Order_Japan#1 EUROPE ITALY Cust_Italy NULL select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid join qa_orders o on c.c_id = o.custid where r.r_id in (select r1.r_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id and n2.n_name = 'UNITED STATES') order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid left join qa_orders o on c.c_id = o.custid where r.r_id in (select r1.r_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id and n2.n_name = 'UNITED STATES') order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid left outer join qa_orders o on c.c_id = o.custid where r.r_id in (select r1.r_id from qa_nation n2, qa_region r1 where n2.regionid = r1.r_id and n2.n_name = 'UNITED STATES') order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid join qa_orders o on c.c_id = o.custid where c.c_id in (select c1.c_id from qa_customer c1) order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 ASIA JAPAN Cust_Japan Order_Japan#1 select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid left join qa_orders o on c.c_id = o.custid where c.c_id in (select c1.c_id from qa_customer c1) order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 ASIA JAPAN Cust_Japan Order_Japan#1 EUROPE ITALY Cust_Italy NULL select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid left outer join qa_orders o on c.c_id = o.custid where c.c_id in (select c1.c_id from qa_customer c1) order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name AMERICA UNITED STATES Cust_US Order_US#1 AMERICA UNITED STATES Cust_US Order_US#2 ASIA JAPAN Cust_Japan Order_Japan#1 EUROPE ITALY Cust_Italy NULL select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid join qa_orders o on c.c_id = o.custid where c.c_id in (select c1.c_id from qa_customer c1 where c1.c_custname = 'Cust_Japan') order by r.r_name, n.n_name, o.o_name; r_name n_name c_custname o_name ASIA JAPAN Cust_Japan Order_Japan#1 select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid join qa_orders o on c.c_id = o.custid where c.c_id in (select c1.c_id from qa_customer c1 where c1.c_custname = 'Cust_Italy') order by r.r_name, n.n_name; r_name n_name c_custname o_name select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid left join qa_orders o on c.c_id = o.custid where c.c_id in (select c1.c_id from qa_customer c1 where c1.c_custname = 'Cust_Japan') order by r.r_name, n.n_name; r_name n_name c_custname o_name ASIA JAPAN Cust_Japan Order_Japan#1 select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid left join qa_orders o on c.c_id = o.custid where c.c_id in (select c1.c_id from qa_customer c1 where c1.c_custname = 'Cust_Italy') order by r.r_name, n.n_name; r_name n_name c_custname o_name EUROPE ITALY Cust_Italy NULL select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid left outer join qa_orders o on c.c_id = o.custid where c.c_id in (select c1.c_id from qa_customer c1 where c1.c_custname = 'Cust_Japan') order by r.r_name, n.n_name; r_name n_name c_custname o_name ASIA JAPAN Cust_Japan Order_Japan#1 select r.r_name, n.n_name, c.c_custname, o.o_name from qa_region r join qa_nation n on r.r_id = n.regionid join qa_customer c on n.n_id = c.nationid left outer join qa_orders o on c.c_id = o.custid where c.c_id in (select c1.c_id from qa_customer c1 where c1.c_custname = 'Cust_Italy') order by r.r_name, n.n_name; r_name n_name c_custname o_name EUROPE ITALY Cust_Italy NULL drop table if exists qa_nation; drop table if exists qa_customer; drop table if exists qa_region; drop table if exists qa_orders;