blob: 71ed6db40752745238e8fb6b536d68515da19940 [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: 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
}
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 nodegroup group1 on asterix-001, asterix-002, asterix-003, asterix-004,
asterix-005, asterix-006, asterix-007, asterix-008, asterix-009, asterix-010;
declare dataset LineItems(LineItemType)
partitioned by key l_orderkey, l_linenumber on group1;
declare dataset Orders(OrderType)
partitioned by key o_orderkey on group1;
declare dataset Customers(CustomerType)
partitioned by key c_custkey on group1;
write output to asterix-001:"/home/onose/hyracks-asterix/results/q3_shipping_priority.adm";
for $c in dataset('Customers')
for $o in dataset('Orders')
where
$c.c_mktsegment = 'BUILDING' and $c.c_custkey = $o.o_custkey
for $l in dataset('LineItems')
where
$l.l_orderkey = $o.o_orderkey and
$o.o_orderdate < '1995-03-15' and $l.l_shipdate > '1995-03-15'
group by $l_orderkey := $l.l_orderkey, $o_orderdate := $o.o_orderdate, $o_shippriority := $o.o_shippriority
with $l
let $revenue := sum (
for $i in $l
return
$i.l_extendedprice * (1 - $i.l_discount)
)
order by $revenue desc, $o_orderdate
limit 10
return {
"l_orderkey": $l_orderkey,
"revenue": $revenue,
"o_orderdate": $o_orderdate,
"o_shippriority": $o_shippriority
}