blob: d6050991eba7a9b5ecdbfae71588ac539ed77a69 [file] [log] [blame]
use dataverse tpch;
declare type LineItemType as closed {
l_orderkey: int32,
l_partkey: int32,
l_suppkey: int32,
l_linenumber: int32,
l_quantity: int32,
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
}
declare type OrderType as closed {
o_orderkey: int32,
o_custkey: int32,
o_orderstatus: string,
o_totalprice: double,
o_orderdate: string,
o_orderpriority: string,
o_clerk: string,
o_shippriority: int32,
o_comment: string
}
declare type CustomerType as closed {
c_custkey: int32,
c_name: string,
c_address: string,
c_nationkey: int32,
c_phone: string,
c_acctbal: double,
c_mktsegment: string,
c_comment: string
}
declare type SupplierType as closed {
s_suppkey: int32,
s_name: string,
s_address: string,
s_nationkey: int32,
s_phone: string,
s_acctbal: double,
s_comment: string
}
declare type NationType as closed {
n_nationkey: int32,
n_name: string,
n_regionkey: int32,
n_comment: string
}
declare type RegionType as closed {
r_regionkey: int32,
r_name: string,
r_comment: string
}
declare nodegroup group1 on nc1, nc2;
set format "edu.uci.ics.asterix.runtime.formats.nontagged.NonTaggedDataFormat";
declare dataset LineItems(LineItemType)
primary key l_orderkey, l_linenumber on group1;
declare dataset Orders(OrderType)
primary key o_orderkey on group1;
declare dataset Customers(CustomerType)
primary key c_custkey on group1;
declare dataset Suppliers(SupplierType)
primary key s_suppkey on group1;
declare dataset Nations(NationType)
primary key n_nationkey on group1;
declare dataset Regions(RegionType)
primary key r_regionkey on group1;
write output to nc1:"/home/yasser/Dropbox/Research/data/results/result_tpch_closed_5.adm";
for $c in dataset('Customers')
for $o1 in
( for $o in dataset('Orders')
for $l1 in (
for $l in dataset('LineItems')
for $s1 in
( for $s in dataset('Suppliers')
for $n1 in
( for $n in dataset('Nations')
for $r in dataset('Regions')
where $n.n_regionkey = $r.r_regionkey and $r.r_name = 'ASIA'
return
{"n_name": $n.n_name, "n_nationkey": $n.n_nationkey} )
where $s.s_nationkey = $n1.n_nationkey
return
{ "n_name": $n1.n_name, "s_suppkey": $s.s_suppkey, "s_nationkey": $s.s_nationkey } )
where $l.l_suppkey = $s1.s_suppkey
return
{ "n_name": $s1.n_name, "l_extendedprice": $l.l_extendedprice, "l_discount": $l.l_discount, "l_orderkey": $l.l_orderkey, "s_nationkey": $s1.s_nationkey } )
where $l1.l_orderkey = $o.o_orderkey and $o.o_orderdate >= '1994-01-01' and $o.o_orderdate < '1995-01-01'
return
{ "n_name": $l1.n_name, "l_extendedprice": $l1.l_extendedprice, "l_discount": $l1.l_discount, "s_nationkey": $l1.s_nationkey, "o_custkey": $o.o_custkey } )
where $c.c_nationkey = $o1.s_nationkey and $c.c_custkey = $o1.o_custkey
group by $n_name := $o1.n_name with $o1
let $revenue := sum (
for $i in $o1
return
$i.l_extendedprice * (1 - $i.l_discount)
)
order by $revenue desc
return
{ "n_name": $n_name, "revenue": $revenue }