| 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 nodegroup group1 on nc1, nc2; |
| |
| set format "edu.uci.ics.asterix.runtime.formats.nontagged.NonTaggedDataFormat"; |
| |
| declare dataset LineItems(LineItemType) |
| partitioned by key l_orderkey, l_linenumber on group1; |
| |
| write output to nc1:"/home/yasser/Dropbox/Research/data/results/result_tpch_closed_1.adm"; |
| |
| for $l in dataset('LineItems') |
| where $l.l_shipdate <= '1998-09-02' |
| group by $l_returnflag := $l.l_returnflag, $l_linestatus := $l.l_linestatus |
| with $l |
| order by $l_returnflag, $l_linestatus |
| return { |
| "l_returnflag": $l_returnflag, |
| "l_linestatus": $l_linestatus, |
| "sum_qty": sum(for $i in $l return $i.l_quantity), |
| "sum_base_price": sum(for $i in $l return $i.l_extendedprice), |
| "sum_disc_price": sum(for $i in $l return $i.l_extendedprice * (1 - $i.l_discount)), |
| "sum_charge": sum(for $i in $l return $i.l_extendedprice * (1 - $i.l_discount) * (1 + $i.l_tax)), |
| "ave_qty": avg(for $i in $l return $i.l_quantity), |
| "ave_price": avg(for $i in $l return $i.l_extendedprice), |
| "ave_disc": avg(for $i in $l return $i.l_discount), |
| "count_order": count($l) |
| } |